Hadoop Multi Node Cluster的安装
Hadoop Multi Node Cluster 规划如下图
- 一台主要的计算机master,在HDFS担任NameNode角色,在MapReduce2(YARN)担任ResourceManager角色。
- 多台辅助计算机data1、data2、data3,在HDFS担任DataNode角色、在MapReduce2(YARN)担任NodeManager角色。
Hadoop Multi Node Cluster规划
把Single Node Cluster复制到data1
命名为data1
选择完全复制
复制完成以后
设置VirtualBox网卡
最右边是Host主机,就是我们安装VirtualBox的主机,在VirtualBox上我们将创建4台虚拟主机,分别是master,data1,data2,data3
我们将在每一台虚拟主机设置了2张网卡
- 网卡1:设置为NAT网卡,可以通过Host主机连接到外部网络(internet)
- 网卡2:设置为仅主机适配器用于创建额内部网络,内部网路连接虚拟主机(master、data1、data2、data3)与Host主机。
设置网卡1
设置网卡2
设置data1服务器
启动data1虚拟机编辑网络配置文件设置固定IP
sudo gedit /etc/network/interfaces
NAT网卡可以通过Host主机连接到外部网络(internet),设置为eth0,并且设置dhcp自动获取IP地址。
仅主机适配器用于建立内部网络,内部网络连接虚拟主机和Host主机,设置为eth1,并设置为static,即指定固定IP地址。
设置hostname
sudo gedit /etc/hosts
建立的Hadoop集群中有4台计算机,host文件通常用于补充或取代网络中DNS的功能,和DNS不同,计算机的用户可以直接对host文件进行控制。host文件可存储计算机网络中各节点的信息,负责将主机名映射到对应的IP地址(名字解析)
编辑host文件
sudo gedit /etc/hosts
编辑core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
必须设置HDFS的默认名称,当使用命令或程序来读取hdfs时,可使用此名称。现在有多台计算机,所以必须指定主机名。
编辑YARN-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
上述的命令设置与说明如下:
- ResourceManager主机与NodeManager的连接地址为8025
- ResourceManager与ApplicationMaster的连接地址为8030
- ResourceManager与客户端的连接地址为8050
编辑mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
mapred-site.xml用于设置监控Map与Reduce程程序的JobTracker任务分配情况,以及TaskTracker任务运行状况。
编辑hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
用户设置HDFS分布式文件系统的相关配置。因为data1现在这是单纯的DataNode,所以需要删除NameNode的设置。
重启data1
确认网络设置
确认对外网络连接正常
复制data1服务器到data2、data3、master
复制data2
重复步骤复制data3和master
选择虚拟机内存设置
由于我的主机的内存是8G的,所以设置步骤为master:2GB,data1:1GB,data2:1GB,data3:1GB。
设置完毕后
设置data2和data3服务器
主要的设置内容是IP和hostname
设置interfaces网络配置文件
sduo gedit /etc/network/interfaces
编辑hostname文件
sudo gedit /etc/hostname
重启data2查看网络设置是否正确
表示hostname已经设置为data2,IP已经设置为192.168.56.102
同理设置data3
检查设置
设置master服务器
在master中需要设置固定IP地址,hostname、hfds-site.xml、masters、slaves。
编辑master的interfaces网络配置文件
sudo gedit /etc/network/interfaces
设置master主机名
sduo gedit /etc/hostname
设置hdfs-site.xml
hdfs-site.xml
用于设置HDFS分布式文件系统相关配置的设置。因为现在master只是单纯的NameNode,所以需要删除DataNode的相关设置。
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
编辑master文件
告诉Hadoop系统那一台服务器是NameNode
sudo gedit /usr/local/hadoop/etc/hadoop/masters
编辑slaves文件
sudo gedit /usr/local/hadoop/etc/hadoop/slaves
然后重启虚拟机
查看网络设置
ifconfig
master连接到data1、data2、data3 创建HDFS目录
启动master、data1、data2、data3
切换到master虚拟机之后启动终端
连接到data1虚拟机
ssh data1
连接到data1 创建HDFS相关目录
删除HDFS所有目录
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
创建DataNode存储目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
将目录的所有者更改为hduser
sudo chown -R hduser:hduser /usr/local/hadoop/
中断data1连接,回到master
输入exit
就可以回到master
对data2、data3做相同的操作
创建并格式化NameNode HDFS目录
这个更改主要是在master中
重新创建NameNode HDFS目录
删除之前的HDFS目录
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs/
创建NameNode目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
将目录的所有者更改为hduser
sudo chown -R hduser:hduser /usr/local/hadoop/
格式化NameNode HDFS目录
hadoop namenode -format
启动Hadoop Multi Node Cluster
启动类似single模式一样,可以分别启动,也可以一起启动
start-all.sh
查看master的进程是否启动
- HDFS功能:NameNode、SecondaryNameNode已经启动
- MapReduce2(YARN):ResourceManager 已经启动
查看data1的运行的进程
- HDFS功能:DataNode 已经启动
- MapReduce2(YARN):NodeManager 已经启动
打开Hadoop ResourceManager Web界面
打开ResouceManager Web界面
在浏览器中输入http://master:8088
查看已经运行的节点Nodes
打开NameNode Web界面
用于检查当前的HDFS与DataNode运行情况
打开NameNode HDFS Web用户界面
http://master:50070
查看DataNode
停止Hadoop Multi Node Cluster
stop-all.sh