该篇博客这要是对多台机器的Hadoop集群,以及hadoop 资源管理(ResourceManager)与NameNode HDFS Web界面的介绍。
Hadoop Multi Node Cluster(Hadoop 集群)规划如下:
- 一台主要计算机master,在HDFS担任NameNode角色、在MapReduce2(YARN)担任ResourceManager角色。
- 有多台计算机,在HDFS担任DataNode角色、在MapReduce2(YARN)担任NodeManager角色
。
Hadoop Multi Node Cluster架构必须由四台服务器才能建立,这使用虚拟机代替。
-
复制Single Node Cluster 复制到data1
(1)复制Hadoop到data1:
单击Hadoop虚拟机,右键复制、输入新虚拟机的名字,勾选重新初始化所有网卡的MAC地址,下一步。
(2)完全复制
(3)等待完成就好
-
设置Virtual Box 网卡
为每台虚拟主机设置两张网卡
网卡1:设为“NAT网卡”,可以通过Host主机连接到外部网络
网卡2:设为“仅主机适配器”,用于创建内部网络,内部网络连接虚拟主机(master,data1、2、3)与host主机。
设置过程如下
(1)、设置data网卡(以data1为例):
(2)设置网卡1为NAT网卡。
(3)设置网卡2:仅主机适配器
-
设置data1服务器
(1)启动data1虚拟机
(2)编辑网络配置文件
sudo gedit /etc/network/interfaces
输入以下内容
# NAT interface
auto eth0
iface eth0 inet dhcp
# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
(3)设置hostname
sudo gedit /etc/hostname
(4)设置hosts文件
sudo gedit /etc/hosts
(5)编辑core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
(6)编辑YARN-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
# 输入以下内容
yarn.resourcemanager.resource-tracker.address
master:8025
yarn.resourcemanager.scheduler.address
master:8030
yarn.resourcemanager.address
master:8050
(7)编辑mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
输入:
mapred.job.tracker
master:54311
(8)编辑hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
# 在文件输入:
dfs.replication
3
dfs.datanode.data.dir
file:/usr/local/hadoop/hadoop_data/hdfs/datanode
(9)重启data1
- 复制data1服务器到data2、3、master
设置各个主机内存:
根据Host主机(PC或服务器)决定内存分配大小:
内存 | master | data1 | data2 | data3 |
---|---|---|---|---|
16GB | 4GB | 2GB | 2GB | 2GB |
8GB | 1GB | 1GB | 1GB | 1GB |
4GB 建议使用Single Node Cluster:2GB
如果虚拟机的内存设置总和超过Host实体主机的内存大小,会造成实体主机宕机。
-
设置data2服务器
(1)设置固定IP:sudo gedit /etc/network/interfaces
(2)设置主机名:
sudo gedit /etc/hostname
(3)重启查看网络配置
ifconfig命令
data3同data2相似,将固定IP改为3 ,并修改主机名。 -
master服务器配置
(1)同样的修改固定IP为0,修改主机名
(2)设置hdfs–site.xml:sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
写入:
dfs.namenode.name.dir
file:/usr/local/hadoop/hadoop_data/hdfs/namenode
(3)编辑master文件:sudo gedit /usr/local/hadoop/etc/hadoop/master
(4)编辑slaves文件:sudo gedit /usr/local/hadoop/etc/hadoop/slaves
(5)重启验证是否正确,网络是否正常:ifconfig
- master连接到data1、data2、data3创建HDFS目录
(1)、打开所有虚拟机
(2)、连接到data1虚拟机,在master的终端中输入ssh data1
(3)、连接到data1创建的HDFS 目录
#在终端输入以下命令:
# 删除HDFS所有目录
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
# 创建DataNode目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
# 更改目录所有者
sudo chown -R user:user /usr/local/hadoop
(4)、中断data1连接,回到masterexit
(5)、连接到data2,data3执行同样操作
8.创建并格式化NameNode HDFS目录
(1)、重新创建NameNode HDFS 目录
# master 终端输入下列命令
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
sudo chown -R user:user /usr/local/hadoop
(2)、格式化NameNode目录
hadoop namenode -format
9.启动Hadoop Mulit Node Cluster
(1)、启动HDFS和YARN:start-all.sh
(2)、查看master(NameNode)的进程:jps
(3)、ssh连接到data1查看data1 的进程
- 打开 Hadoop ResourceManager Web 界面
http://localhost:8088/
- 打开NameNode Web界面
http://master:50070/
12. 终端停止Hadoop Multi Node Cluster:stop-all.sh