Centos7下的Hadoop集群完全分布式搭建

Hadoop集群完全分布式搭建(Centos7)

前期准备

虚拟机三台:master、slave1、slave2,记下它们的IP、子网掩码、网关

一、先进行网络的配置

  1. 关闭三台虚拟机的防火墙(三台都要关闭),代码如下:
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

查看防火墙状态,代码如下:

sudo systemctl status firewalld.service

出现如下图所示的状态,则说明成功关闭:在这里插入图片描述
2. 防火墙成功关闭之后,开始配置网络,使用命令vim /etc/sysconfig/network-scripts/ifcfg-ens33进入配置界面:将BOOTPROTO="dhcp"下移至DEVICE="ens33"下方,并将dhcp改为static。在最下方添加IPADDR(ip地址)、NETMASK(子网掩码)、GATEWAY(网关)、DNS1和DNS2。

以我的配置为例:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="f64c32b0-68d6-4f62-ba70-bb30ad001a22"
DEVICE="ens33"

BOOTPROTO="static"
ONBOOT="yes"

IPADDR=192.168.211.131
NETMASK=255.255.255.0
GATEWAY=192.168.211.2
DNS1=8.8.8.8
DNS2=114.114.114.114

注意:读者要根据自己的实际情况来配置IPADDR、NETMASK和GATEWAY,DNS1和DNS2可以与笔者配置成一样的。

配置好之后 :wq!保存退出,重启网络即可生效,代码如下:

sudo service network restart

其他两台主机按照同样的步骤完成配置即可

  1. 配置完成后,在master主机节点上配置IP映射,用vim命令进入配置界面,代码如下:
sudo vim /etc/hosts

在下方配置你的三台主机的IP地址,以笔者为例:

192.168.211.131 master
192.168.211.132 slave1
192.168.211.133 slave2

接下来把master上配置好的映射传递到slave1和slave2节点上,代码如下:

scp /etc/hosts slave1:/etc/hosts
scp /etc/hosts slave2:/etc/hosts

最后在windows上追加主机IP映射:
找到 C:\windows\system32\drivers\etc\hosts 路径,用记事本打开,在最下方追加映射,以笔者为例:

192.168.211.131 master
192.168.211.132 slave1
192.168.211.133 slave2

二、配置ssh免密登陆

  1. 在master主机上,cd .ssh/ 到 .ssh 目录下,输入命令:
ssh-keygen -t rsa

敲击四次回车,输入 ls 命令出现id_rsa(私钥)、id_rsa.pub(公钥)、know_hosts

输入命令:

ssh-copy-id localhost

会生成一个authorized_keys,下面给另外两个节点也发送一份密钥,命令如下:

ssh-copy-id 192.168.211.132 (slave1的IP地址)

slave2同理:

ssh-copy-id 192.168.211.133 (slave2的IP地址)

此时通过命令 .ssh slave1即可不需要密码远程登陆到slave节点,通过exit即可退出。

三、下载安装jdk和hadoop

这里采取了本地下载好,然后通过xftp工具传输到虚拟机的方法

  1. 首先在master主机上建立文件夹 mkdir software ,在software文件夹下建立存放压缩包的文件夹 mkdir tars
  2. 使用命令 chmod 777 tars 修改tars文件夹权限。
  3. 将本地的jdk和hadoop压缩包传输到tars文件夹。
  4. 解压jdk和hadoop压缩包到software文件夹,命令如下:
tar -zxvf 压缩包名 -C ../
  1. 两个压缩包全部解压完成即可。

四、开始配置环境变量

本步骤较为复杂,需要确保正确率,一定要耐心

  1. 在master主机上cd 到 software目录下,vim /etc/profile 进入配置界面。在最下方配置jdk和hadoop的环境变量,以笔者为例:
export JAVA_HOME=/home/nxy/software/jdk1.8.0_101/
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/home/nxy/software/hadoop-2.7.3/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

配置完成后,输入命令 source /etc/profile 刷新环境变量。

注意:这一步需要找到你的jdk和hadoop的正确路径,否则会出错。

输入javajavachadoop进行验证

  1. 进入 hadoop-2.7.3/etc/hadoop ,目录下,开始配置hadoop(根据自己的hadoop版本进入正确的目录,切勿复制笔者的路径)

① 输入命令 vim hadoop-env.sh 进入配置界面找到JAVA_HOME,配置JAVA_HOME 的路径,以笔者为例:

export JAVA_HOME=/home/nxy/software/jdk1.8.0_101/

② 输入命令 vim core-site.xml 进入配置界面,在configuration标签中进行配置,以笔者为例:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/nxy/software/hadoop_tmp</value>
</property>
</configuration>

注意:可以先在software目录下创建文件夹hadoop_tmp

③ 输入命令vim yarn-site.xml 进入配置界面,在configuration标签中进行配置,以笔者为例:

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

④ 配置mapred-site.xml之前,先将mapred-site.xml.template文件拷贝一份并改名为mapred-site.xml,再进行配置。代码如下:

cp mapred-site.xml.template mapred-site.xml

⑤输入命令vim mapred-site.xml进入配置界面,在configuration标签中进行配置,以笔者为例:

<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

⑥ 输入vim slaves 进入配置界面将其中内容进行更改,以笔者为例:

slave1
slave2

五、发送jdk、hadoop和配置文件到slave1和slave2

  1. 在slave1和slave2上创建文件夹:mkdir software

  2. 以笔者为例,发送jdk、hadoop、配置文件的代码如下:

scp -r jdk1.8.0_101/ slave1:/home/nxy/software
scp -r jdk1.8.0_101/ slave2:/home/nxy/software


scp -r hadoop-2.7.3/ slave1:/home/nxy/software
scp -r hadoop-2.7.3/ slave2:/home/nxy/software


scp /etc/profile slave1:/etc/
scp /etc/profile slave2:/etc/
  1. 到slave1和slave2上查看环境变量,命令为cat /etc/profile
  2. 无误后刷新环境变量,命令为source /etc/profile
  3. 测试javajavachadoop命令是否正常。

六、格式化namenode

命令如下:

hadoop namenode-format

格式化成功之后,集群的搭建就成功了。

七、启动集群

启动集群的命令如下:

start-all.sh

关闭集群的命令如下:

stop-all.sh

PS:验证集群启动成功的方法

1.查看进程是否启动成功

在master的终端执行jps命令,在打印结果中会看到4个进程,分别是ResourceManager. Jps、NаmеNоdе和ЅесоndаrуNаmеNоdе,如图所示,如果出现这4个进程表示主节点进程启动成功:在这里插入图片描述
在slave的终端执行jps命令,在打印结果中会看到3个进程,分别是NodeManager、DataNode和Jps,如图所示,如果出现这3个进程表示从节点进程启动成功:在这里插入图片描述
2. Web UI查看集群是否启动成功

在master上启动Firefox浏览器,在浏览器地址中输入http://master:50070/,检查namenode和datanode是否正常。UI页面如图所示:在这里插入图片描述
在master上启动Firefox浏览器,在浏览器地址中输入http://master:8088/,检查Yarn是否正常。页面如图所示:在这里插入图片描述
以上两种方法皆可验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值