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规划,整理如下表格:
伺服器名稱 | IP | HDFS | YARN |
---|---|---|---|
master | 192.168.0.100 | NameNode | ResourceManager |
data1 | 192.168.0.101 | DataNode | NodeManager |
data2 | 192.168.0.102 | DataNode | NodeManager |
data3 | 192.168.0.103 | DataNode | NodeManager |
Ps:考虑到大家都只有一台pc,所以为了方便,使用VM创建4台虚拟主机master、data1、data2、data3。因为是虚拟主机,所以也无法享受多台计算机的优势
主要安装步骤:
-
複製Single Node Cluster到data1
-
設定data1服务器
-
複製data1服务器至data2、data3、master
-
設定data2、data3服务器
-
設定master服务器
-
master连线至data1、data2、data3建立HDFS目錄
-
建立與格式化NameNode HDFS 目錄
-
啟動Hadoop Multi Node cluster
-
開啟Hadoop Resource-Manager Web介面
-
開啟NameNode Web介面
(1)复制Single Node Cluster到data1
我们將之前所建立的Single Node Cluster VM 虚拟机复制到data1,设置为双网卡,
网卡1:设置NAT 网卡,可以通过host主机连接至外部网络
网卡2:设置为仅主机适配器,用于建立内部网络,内部网络链接虚拟主机与host主机。
(2)设置data1的服务器
设置Multi Node Cluster 服务器,配置设置文件的共同部分:固定IP、hostname、core-site.xml、YARN-site.xml、mapred-site.xml、hdfs-site.xml
### Step0 查询IP地址,读取双网卡的IP地址
ifconfig
### Step1.编辑网络设定文件设定固定IP
sudo gedit /etc/network/interfaces
# 輸入下列內容
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# 网卡1 设置NAT 网卡,可以通过host主机连接至外部网络,设置为ens33,并设置为自动获取ip
# NAT interface
auto ens33
iface ens33 inet dhcp
# 网卡2 设置为仅主机适配器,用于建立内部网络,内部网络链接虚拟主机与host主机。
# host only interface
auto ens38
iface ens38 inet static
address 192.168.88.129
netmask 255.255.255.0
network 192.168.88.0
broadcast 192.168.88.255
### Step2.设定hostname
sudo gedit /etc/hostname
# 輸入下列內容:
data1
### Step3.设定hosts文件
sudo gedit /etc/hosts
# 輸入下列內容:
127.0.0.1 localhost
127.0.1.1 hadoop
# 输入每台电脑的IP地址
192.168.88.128 master
192.168.88.129 data1
192.168.88.130 data2
192.168.88.131 data3
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
### Step4.修改core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
# 在<configuration></configuration>之間,輸入下列內容:
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
### Step5.修改yarn-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
# 在<configuration></configuration>之間,輸入下列內容:
######################################################
#设置ResourceManager主机与NodeManager的连接地址为8025
#设置ResourceManager主机与ApplicationMaster的连接地址为8030
#设置ResourceManager主机与客户端的连接地址为8050
######################################################
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
### Step6.修改mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
# 在<configuration></configuration>之間,輸入下列內容:
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
### Step7.修改hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
# 在<configuration></configuration>之間,輸入下列內容:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
(3)复制data1服务器至data2、data3、master
设置master的内存为4GB,其余内存为2G
(4)设置data2的服务器
# 设置data2的固定IP地址。
# 我们需要设置虚拟机每次开机都使用固定的IP,这个IP就是我们在(2)中设置的
sudo gedit /etc/network/interfaces
# 輸入下列內容
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# NAT interface
auto ens33
iface ens33 inet dhcp
# host only interface
auto ens38
iface ens38 inet static
address 192.168.88.130 # 主要修改这里的ip地址
netmask 255.255.255.0
network 192.168.88.0
broadcast 192.168.88.255
### Step2 设置主机名
sudo gedit /etc/hostname
# 輸入下列內容:
data2
同理,设置data3的IP地址和主机名
(5)设定master服务器
# step1.设置master的固定IP地址。
# step2.设置dmaster的主机名。
# Step3 设定hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
#修改为:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
# Step4 设定master文件
# masters文件主要是告诉Hadoop系统哪一台服务器是namenode
sudo gedit /usr/local/hadoop/etc/hadoop/masters
# 輸入下列內容:
master
# Step5.设定slave文件
# slaves文件主要是告诉Hadoop系统哪一台服务器是datanode
sudo gedit /usr/local/hadoop/etc/hadoop/slaves
# 輸入下列內容:
data1
data2
data3
(6)master连接到data1、data2、data3创建HDFS目录
# master SSH连接至data1並建立HDFS目錄
# 连接成功如图,由master变成了data1
ssh data1
# 清除原有的节点数据文件
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
sudo chown -R hadooptest:hadooptest /usr/local/hadoop
exit
同理,在data2、data3里创建HDFS目录
(7)创建并格式化nameNode HDFS目录
# Step1 重新建立NameNode HDFS 目錄
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
sudo chown -R hadooptest:hadooptest /usr/local/hadoop
# Step2 格式化NameNode HDFS 目錄
hadoop namenode -format
(8)启动Hadoop
# 启动start-dfs.sh,再启动start-yarn.sh
start-dfs.sh
start-yarn.sh
# 启动全部
# 这里注意在输入密码的时候需要输入三个data的密码
start-all.sh
# 查看目前所執行的行程
jps
(10)Hadoop的网页地址
开启 Hadoop ResourceManager Web介面 :http://master:8088/
开启Hadoop Resource-Manager Web介面:http://master:50070/