前言node
上一篇介绍了伪分布式集群的搭建,其实在咱们的生产环境中咱们确定不是使用只有一台服务器的伪分布式集群当中的。接下来我将给你们分享一下全分布式集群的搭建!linux
其实搭建最基本的全分布式集群和伪分布式集群基本没有什么区别,只有很小的区别。web
1)若是是在一台虚拟机中安装多个linux操做系统的话,可使用NAT或桥接模式都是能够的。试一试可不能够相互ping通!ubuntu
2)若是在一个局域网当中,本身的多台电脑(每台电脑安装相同版本的linux系统)搭建,将所要使用的Ubuntu操做系统的网络模式调整为桥接模式。服务器
步骤:网络
一是:在要使用的虚拟机的标签上右键单击,选择设置,选择网络适配器,选择桥接模式,肯定ssh
二是:设置完成以后,重启一下虚拟机 分布式
三是:再设置桥接以前将固定的IP取消 oop
桌面版:经过图形化界面设置的。
服务器版:在/etc/network/interfaces
iface ens33 inet dhcp
#address ...测试
四是:ifconfig获取IP。172.16.21.xxx
最后试一试能不能ping通
每个要搭建集群的服务器都须要安装jdk,这里就不介绍了,能够查看上一篇
每个要搭建集群的服务器都须要安装hadoop,这里就不介绍了,能够查看上一篇。
配置/opt/hadoop/etc/hadoop相关文件
25行左右:export JAVA_HOME=${JAVA_HOME}
改为:export JAVA_HOME=/opt/jdk
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://mip:9000</value> </property> </configuration>
分析:
mip:在主节点的mip就是本身的ip,而全部从节点的mip是主节点的ip。
9000:主节点和从节点配置的端口都是9000
注意:**:下面配置了几个目录。须要将/data目录使用-R给权限为777。
<configuration> <property> <name>dfs.nameservices</name> <value>hadoop-cluster</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///data/hadoop/hdfs/nn</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///data/hadoop/hdfs/snn</value> </property> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///data/hadoop/hdfs/snn</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///data/hadoop/hdfs/dn</value> </property> </configuration>
分析:
dfs.nameservices:在一个全分布式集群大众集群当中这个的value要相同
dfs.replication:由于hadoop是具备可靠性的,它会备份多个文本,这里value就是指备份的数量(小于等于从节点的数量)
一个问题:
dfs.datanode.data.dir:这里我在配置的时候遇到一个问题,就是当使用的这个的时候从节点起不来。当改为fs.datanode.data.dir就有用了。
可是官方给出的文档确实就是这个呀!因此很邪乎。由于只有2.0版本以前是fs
注意:若是在刚解压以后,是没有这个文件的,须要将mapred-site.xml.template复制为mapred-site.xml。
<configuration> <property>
<!-指定Mapreduce运行在yarn上--> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
<configuration> <!-- 指定ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>mip</value> </property> <!-- 指定reducer获取数据的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value>file:///data/hadoop/yarn/nm</value> </property>
分析:
mip:在主节点的mip就是本身的ip,而全部从节点的mip是主节点的ip。
sudo mkdir -p /data/hadoop/hdfs/nn sudo mkdir -p /data/hadoop/hdfs/dn sudo mkdir -p /data/hadoop/hdfs/snn sudo mkdir -p /data/hadoop/yarn/nm
必定要设置成:sudo chmod -R 777 /data
有三台ubuntu服务器(ubuntu 17.04):
主机名:udzyh1 IP:1.0.0.5 做为主节点(名字节点)
主机名:server1 IP:1.0.0.3 做为从节点(数据节点)
主机名:udzyh2 IP:1.0.0.7 做为从节点(数据节点)
jdk1.8.0_131
hadoop 2.8.1
名字节点、资源管理器:这是在主节点中启动或关闭的。
数据节点、节点管理器:这是在从节点中启动或关闭的。
MR做业日志管理器:这是在主节点中启动或关闭的。
在主节点:udzyh1中
在从节点:server1中
在从节点:udzyh2中
咱们在主节点的web控制页面中:http:1.0.0.5:50070中查看到两个从节点
说明配置成功
配置这个是为了实现主节点管理(开启和关闭)从节点的功能:
咱们只须要在主节点中使用start-dfs.sh/stop-dfs.sh就能开启或关闭namenode和全部的datanode,使用start-yarn.sh/stop-yarn.sh就能开启或关闭resourcemanager和全部的nodemanager。
1)在全部的主从节点中执行
3)在全部的从节点中执行
在从节点1.0.0.7
4)测试
咱们能够查看他们是用户名相同的,因此能够直接使用ssh 1.0.0.3远程链接
1)在主节点中
打开vi /opt/hadoop/etc/hadoop/slaves
1)在主节点的服务器中执行start-dfs.sh
2)在web监控平台查询
3)在主节点的服务器中执行stop-dfs.sh
3)在主节点的服务器中执行start-yarn.sh
4)在web监控平台查询到
5)在主节点的服务器中执行stop-yarn.sh
2)主节点和从节点启动了,可是在主节点的web控制页面查找不到从节点(linux系统安装在不一样的物理机上面)
解决方案:
它不能创建IPv6的链接,因此删除了IPv6以后系统会使用IPv4(在主节点上添加从节点的标识的)
4)在主节点的web控制页面查询不到从节点信息(可是使用jps能够查询到)
喜欢就点个“推荐”哦!