上次总结中,我们介绍了实验环境,并总结了Hadoop的基础知识。本次学习承接上次学习内容继续。
上篇文章链接:Hadoop学习篇(一)——初识Hadoop & Hadoop单机配置
Hadoop学习篇(一)
说明:如涉及到侵权,请及时联系我,并在第一时间删除文章。
1.2.3.3 Hadoop分布式配置
这里分布式搭建主要步骤为:
- 虚拟机IP地址设置
这里通过设定虚拟机固定的IP地址,避免每一次启动都要动态搜索IP地址,使得宿主机每一次都要进行结点IP的修改,造成不必要的麻烦。
第一步:更改虚拟机网络适配器,选择桥接模式的Wi-Fi模式。如图:
第二步:为虚拟机赋予固定IP地址。
打开设置,找到网络配置选项,在无线栏中点击设置按钮。如图:
进入后,查看目前的IP地址、网关等信息。
然后,选择IPv4配置栏进行配置。
IPv4 Method选择Manual手动配置。
IP地址设定为固定值、子网掩码设定为255.255.255.0、网关设定为固定值
其余的不动。
结果如图所示:
固定ip设置完成后,重启虚拟机,打开终端,输入ifconfig查看是否修改成功。(结点同上)
第三步:修改宿主机host文件。
这里我们将结点IP地址信息添加宿主机的/etc/hosts文件中去。
添加内容为:
192.168.2.96 master
192.168.2.88 slave1
192.168.2.98 slave2
添加完成后,检查IP地址是否可用。在终端输入命令ping slave1 -c 4进行连接测试。如图:
- 宿主机与结点文件配置
在宿主机安装Hadoop并配置文件。这里不同的是,需要对slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml这五个文件进行配置。配置内容如图:
slaves文件:
slave1
slave2
core-site.xml文件:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml文件:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
(这里结点数设为2,所以dfs.replication的值设定为2)
mapred-site.xml文件:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
yarn-site.xml文件:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置完成后,宿主机将配置好的hadoop打包发送到每个节点上,执行命令与ssh无密码登陆配置格式相同:
scp ./打包文件 结点名@IP地址
每个结点在接收到hadoop打包文件后,解压安装,赋予权限。
最后,回到宿主机器进行初始化。结果如图:
- 启动分布式集群
启动分布式集群只需要在宿主机上完成即可。启动命令与伪分布式启动命令一致。启动后,集群个结点查看运行进程如图所示:
宿主机进程信息:
结点slave1进程信息:
结点slave2进程信息:
我们也可以通过命令查看结点运行信息,也可以通过可视化页面查看。
命令查看结点信息(为了方便查看,我们使用ssh远程登录宿主机进行查看):
可视化页面查看结点信息(宿主机登陆网页localhost://50070进行查看):
这里总结一下配置Hadoop时遇到的问题:
-
虚拟机安装成功后,没有网络配置工具。
解决办法:sudo apt-get install net-tools,安装网络配置工具。
-
虚拟机安装成功后,ifconfig查看时没有分配IP地址。
解决办法:sudo dhclient命令进行分配。
注意:集群结点IP地址尽量有网络自己分配后在设置为静态,否则容易造成IP冲突。
-
宿主机初始化后,DataNode没有正常启动。
解决办法:每一次初始化之前都要将每个结点中tmp目录下保存的即时数据删除。