0


环境搭建--Hadoop完全分布式

Hadoop完全分布式—环境搭建

Hadoop的环境搭建分为伪分布式和完全分布式,这里演示完全分布式搭建过程,并且以三台机器作为节点服务器。

1、准备工作

1.首先要准备好vmware虚拟机与centos7光盘映像,完成虚拟机的一个基础机的安装(可以选择最小系统进行安装)。

这里根据自己的电脑实际配置将内存尽可能的设置大一点,避免后面运行出错。其他步骤这里不作赘述。

2.将准备好的基础机打开,进行准备工作配置

  • 配置静态IP,避免因每次重新启动后,ip发生变化。输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述

​ 将上述红色框中的内容进行修改,并添加四行内容:

BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.10.102  (ip地址,根据自己的网卡进行设置)
GATEWAY=192.168.10.2   (网关,网段.2)
NETMASK=255.255.255.0  (子网掩码,可不写,默认24位掩码)
DNS1=8.8.8.8           (公网dns解析地址1)
DNS2=114.114.114.114   (公网dns解析地址2)

​ 修改完成后”:wq“进行保存退出并重启网卡。

systemctl restart network
  • 修改默认主机名称。vi /etc/hostname

在这里插入图片描述

第一台节点将原来的localhost改为master(第二、三台分别为slave1,slave2)

修改完毕后保存退出。

  • 配置Linux下静态ip映射,添加自己的IP地址与对应的主机名称。vi /etc/hosts

在这里插入图片描述

添加完毕后保存退出即可。

  • 关闭防火墙。systemctl stop firewalld (暂时关闭防火墙)systemctl disable firewalld (永久关闭防火墙)

至此基本的准备工作配置已经完成。

2、安装JDK

①进入opt目录下创建两个文件夹software(软件安装包)、module(解压后的文件)

mkdir software module

在这里插入图片描述

②进入software目录下,使用xftp或者其他软件将jdk的安装包传进来并进行解压。
在这里插入图片描述

使用命令进行解压

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

这里指将jdk安装包解压到opt下的module目录, -C 参数代表解压到某文件目录,后面跟目录地址

在这里插入图片描述

③解压完成后我们开始配置环境变量

sudo vi /etc/profile.d/my_env.sh

在etc下的profile.d目录下编辑一个新的文件用来存放以后各种软件的环境变量(在以前的版本中是直接在profile文件下进行添加)。

添加以下内容:

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
#将JAVA_HOME拼接到PATH中
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述

④添加完毕后保存退出

⑤source环境变量,使其生效

source /etc/profile.d/my_env.sh

⑥检验java是否安装成功,输入java和javac进行检验

java

在这里插入图片描述

javac

在这里插入图片描述

看到以上提示信息代表java已经安装完毕·。

3、安装Hadoop

①进入software目录下,使用xftp或者其他软件将hadoop的安装包传进来并进行解压。

使用命令进行解压:

tar -zxvf hadoop-3.2.1.tar.gz -C /opt/module/

在这里插入图片描述

②解压完毕后,配置Hadoop的环境变量

sudo vi /etc/profile.d/my_env.sh

在my_env.sh中添加下面的内容:

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

在这里插入图片描述

③使用source命令将环境变量生效

source /etc/profile.d/my_env.sh

④输入hadoop version检验当前hadoop是否安装完毕
在这里插入图片描述

可以看到版本号即代表当前hadoop已经安装完毕。至此安装过程已经完成。

4、克隆虚拟机

在vmware左侧导航栏中右键当前虚拟机,管理,选择克隆,具体操作步骤见下图:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

之后单击完成即可。

注意,这里总共需要克隆两台机器,克隆时需要注意修改虚拟机名称分别为slave1、slave2,同时可以选择修改虚拟机保存的位置。

克隆完成后,按照上述过程中的步骤将克隆后的slave1和slave2进行主机名和ip地址的修改,修改完成后重新启动。

5、编写xsync集群分发脚本

①scp(secure copy)安全拷贝:

scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2),其基本语法为:

scp    -r        $pdir/$fname             $user@$host:$pdir/$fname
命令   递归     要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

例如:在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。

scp -r /opt/module/jdk1.8.0_212  xiaodong@hadoop103:/opt/module

②rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

其基本语法如下:

rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname
命令   选项参数   要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

-a 归档拷贝
-v 显示复制过程

例如:同步hadoop102中的/opt/module/hadoop-3.2.1到hadoop103

rsync -av hadoop-3.2.1/ xiaodong@hadoop103:/opt/module/hadoop-3.2.1/

③xsync集群分发脚本

需求:循环复制文件到所有节点的相同目录下

需求分析:

  • rsync命令原始拷贝:rsync -av /opt/module atguigu@hadoop103:/opt/
  • ②期望脚本:xsync要同步的文件名称
  • ③期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)[xiaodong@hadoop102 ~]$ echo $PATH/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xiaodong/.local/bin:/home/xiaodong/bin:/opt/module/jdk1.8.0_212/bin

脚本实现:

  • 在/home/xiaodong/bin目录下创建xsync文件[xiaodong@hadoop102 opt]$ cd /home/xiaodong[xiaodong@hadoop102 ~]$ mkdir bin[xiaodong@hadoop102 ~]$ cd bin[xiaodong@hadoop102 bin]$ vim xsync在该文件中编写如下shell代码:#!/bin/bash#1. 判断参数个数if[$# -lt 1]thenecho"Not Enough Arguement!"exitfi#2. 遍历集群所有机器forhostin hadoop102 hadoop103 hadoop104doecho====================$host====================#3. 遍历所有目录,挨个发送forfilein$@do#4. 判断文件是否存在if[ -e $file]then#5. 获取父目录pdir=$(cd -P $(dirname $file);pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh$host"mkdir -p $pdir"rsync -av $pdir/$fname$host:$pdirelseecho$file does not exists!fidonedone
  • 修改脚本 xsync 具有执行权限:chmod +x xsync
  • 将脚本复制到/bin中,以便全局调用sudo cp xsync /bin/
  • 同步环境变量配置(root所有者)sudo xsync /etc/profile.d/my_env.sh
  • 让环境变量生效[xiaodong@hadoop103 bin]$ source /etc/profile[xiaodong@hadoop104 opt]$ source /etc/profile

6、ssh无密码登录

在home目录下输入命令:

ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免密登录的目标机器上

[xiaodong@hadoop102 .ssh]$ ssh-copy-id hadoop102
[xiaodong@hadoop102 .ssh]$ ssh-copy-id hadoop103
[xiaodong@hadoop102 .ssh]$ ssh-copy-id hadoop104

注意:在三台机器节点上都需要进行上述ssh无密登录配置,以便后续群起集群

7、配置hadoop的四个xml文件

进入到配置文件的目录里:

cd /opt/module/hadoop-3.2.1/etc/hadoop/

在这里插入图片描述

  • core-site.xml使用vi命令进行编辑,在标签里添加如下内容<!-- 指定NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://master:8020</value></property><!-- 指定hadoop数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop/data</value></property><!-- 配置HDFS网页登录使用的静态用户为xiaodong --><property><name>hadoop.http.staticuser.user</name><value>xiaodong</value></property>
  • hdfs-site.xml使用vi命令进行编辑,在标签里添加如下内容<!-- nn web端访问地址--><property><name>dfs.namenode.http-address</name><value>master:9870</value></property><!-- 2nn web端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>slave2:9868</value></property>
  • yarn-site.xml使用vi命令进行编辑,在标签里添加如下内容<!-- 指定MR走shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定ResourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>slave1</value></property><!-- 环境变量的继承 --><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property>
  • mapred-site.xml

​ 使用vi命令进行编辑,在标签里添加如下内容

<!-- 指定MapReduce程序运行在Yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property>

全部配置完毕后,在当前目录下执行

xsync ./

将写好的配置文件分发到另外两台节点上。

8、群起集群

配置workers文件

vi /opt/module/hadoop-3.2.1/etc/hadoop/workers

将原来的localhost改为自己的三台主机名

master
slave1
slave2

修改完毕后保存退出,xsync分发当前文件

xsync workers

启动集群:

如果集群是第一次启动,需要在hadoop102节点(主节点)格式化NameNode

 hdfs namenode -format

启动HDFS:在主节点上执行

start-all.sh

在配置了ResourceManager的节点(hadoop103)启动YARN

start-yarn.sh

启动完成后,观察各节点的jps进程:

hadoop102(master):

13691 NameNode
14651 Jps
13836 DataNode
14428 NodeManager

hadoop102(slave1):

2736 Jps
1865 NodeManager
2204 ResourceManager
1742 DataNode

hadoop103(slave2):

1748 DataNode
2182 Jps
1963 NodeManager
1871 SecondaryNameNode

Web端查看HDFS的NameNode

①浏览器中输入:http://hadoop102:9870

②查看HDFS上存储的数据信息

在这里插入图片描述

Web端查看YARN的ResourceManager

①浏览器中输入:http://hadoop103:8088

②查看YARN上运行的Job信息
在这里插入图片描述

至此Hadoop的完全分布式集群就已经搭建完毕了!

注意:

  • 此文中的集群规划如下:hadoop102hadoop103hadoop104HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNodeYARNNodeManagerResourceManager NodeManagerNodeManager
  • 全文出现的hadoop102、hadoop103、hadoop104都要分别替换为自己的主机名称。

重生之我学大数据。。。

标签: hadoop 分布式 linux

本文转载自: https://blog.csdn.net/weixin_53545333/article/details/129859326
版权归原作者 BigData@Submerge 所有, 如有侵权,请联系我们删除。

“环境搭建--Hadoop完全分布式”的评论:

还没有评论