第一节:Vmware-Ubuntu 16.04(LTS版)实战Hadoop Multi Node Cluster¶
一、前言¶
本文操作是在Hadoop Single Node Cluster基础上的进阶,由于Single与Multi大同小异,不多作解释,本文着重阐述Hadoop Multi Node Cluster。 Hadoop Multi Node Cluster架构有一台主要的计算机master,在HDFS担任NameNode角色、在MapReduce2(YARN)担任ResourceManager角色。除此之外,添加三个虚拟主机data1、data2,data3.
注:Hadoop Multi Node Cluster架构,必须有4台实体服务器才能建立,才能够发挥多台计算机并行处理的优势,此处选用虚拟主机进行实验。
三、开始实操¶
由于之前Hadoop Single Node Cluster已经安装好了,现在进入下列操作:
1.克隆主机¶
通过Vmware克隆模式,克隆出4个独立的虚拟主机,并且命名为data1,data2,data3,master。然后通过ifconfig得出各个虚拟主机的IP。这里为
master 192.168.56.100
data1 192.168.56.101
data1 192.168.56.102
data1 192.168.56.103
2.data1修改¶
编辑interfaces网络配置文件—保证虚拟主机IP地址不变
sudo gedit /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# 以下为新添加内容
# NAT interface
auto eth0
iface eth1 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
2.编辑hosts文件¶
# 添加下面内容,注意输入每一台主机对应的IP地址
master 192.168.56.100
data1 192.168.56.101
data1 192.168.56.102
data1 192.168.56.103
3.编辑core-site.xml¶
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
<!--在Hadoop Single Node Cluster安装后,下面master为localhost,此时改为master即可-->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
4.编辑yarn-site.xml¶
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<!-- 设置ResourceManager主机与NodeManager的连接地址 -->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<!-- 设置ResourceManager与ApplicationMaster的连接地址 -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<!-- 设置ResourceManager与客户端的连接地址 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>
5.编辑mapred-site.xml¶
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>
6.编辑hdfs-site.xml¶
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<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>
4.设置master服务器.¶
按照data1操作设置完毕—修改hostname
1.修改hdfs-site.xml文件¶
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
</configuration>
3.编辑slaves文件¶
sudo gedit /usr/local/hadoop/etc/hadoop/slaves
# 设置data1,data2,data3
data1
data2
data3
4.重启¶
5.SSH无密码连接.¶
1.master主机操作¶
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost
# 主机公钥通过ssh连接复制给data1,如果要复制给data2/data3,修改IP即可
scp ~/.ssh/id_rsa.pub hduser@192.168.56.101:/home/hduser/
2.data1/data2/data3操作¶
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
3.最后在master主机中操作¶
ssh data1
6.创建并格式化NameNode HDFS.¶
hadoop namenode -format
8.查看master的进程是否启动¶
>查看启动的进程
jps
>显示
4646 jps
4350 ResourceManager
3998 NameNode
4185 SecondaryNameNode
### 8.查看data1/data2/data3的进程是否启动
>分别输入
ssh data1
jps
exit
>jps显示
1956 NodeManager
1872 DataNode
2044 Jps
四、问题解决¶
>1.ssh连接远程主机时,出现 sign_and_send_pubkey: signing failed: agent refused operation 错误,并且还是需要输入密码
表示ssh-agent 已经在运行了,但是找不到附加的任何keys,就是说你生成的key,没有附加到ssh-agent上,需要附加一下,执行ssh后出现上述错误。
解决办法:依次执行下列代码
eval "$(ssh-agent -s)"
ssh-add
>2.ssh无密码登录失败,还是需要输入密码登录
解决办法:清除.ssh文件夹里面所有文件,然后按照上述操作即可。
>A@B 终端中依次代表 用户名@主机名
>ssh data1连接后,要记得用exit退出再去操作!