一、创建一个新的虚拟机hadoop14,进行相关配置(ip地址的修改,免密登录,关闭防火墙,hosts文件修改等)
1.使用克隆的方法
1)修改静态ip地址
2)将hadoop目录下的logs和data目录删除。
3)删除hadoop/etc/hadoop/workers文件中的内容
2.直接安装一个新的虚拟机
1)静态ip地址的修改
2)免密登录的设置,使其他三台虚拟机可以不输入密码直接登录进去
3)关闭防火墙,设置hosts文件(将其他三台虚拟机的地址和虚拟机名称添加进去)
二、配置主节点hadoop11的hdfs-site.xml文件
在hdfs-site.xml文件下添加
<property>
<name>dfs.hosts</name>
<value>/home/hadoop/hadoop2.7/conf/datanode-allow.list</value>
<description>允许加入集群的节点列表</description>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/home/hadoop/hadoop2.7/conf/datanode-deny.list</value>
<description>拒绝加入集群的节点列表</description>
</property>
需要注意的是,conf/datanode-allow.list和conf/datanode-deny.list需要自己进行创建
我在完成这一个工作启动第四台虚拟机的时候,第四台虚拟机直接就可以和其他三台虚拟机进行连接
并没有使用到conf/datanode-allow.list文件。为了不出现不必要的错误,这个配置我没有删除。
三、添加节点
1.首先启动其他三台虚拟机的hadoop
这里需要注意的是,先不要对workers文件进行修改,不然会提示找不到hadoop14
2.启动hadoop14
1)使用代码:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
分别启动hadoop14上面的datanode和nodemanager
2)配置允许连接节点列表datanode-allow.list
配置前先将hadoop14地址添加在hadoop11上面,其他服务器也进行添加。
datanode-allod.list文件如果不进行修改的话,是默认所有节点都可以进行连接,配置的话就是只能连接配置内的节点。
这里的话,我分别试了一下不添加和添加的结果,发现两种结果都可以使hadoop14连接起来。
3)刷新主节点,查看节点状态
hdfs dfsadmin -refreshNodes 刷新
hdfs dfsadmin -report 查看状态
或者直接进入网址:hadoop11:9870进行查看。
四、删除节点
1.在修改datanode-deny.list文件
将hadoop14添加到该文件中。
2.刷新主节点,查看节点状态
hdfs dfsadmin -refreshNodes 刷新
hdfs dfsadmin -report 查看状态
3.关闭hadoop14的节点进程
yarn-daemon.sh stop nodemanager
hadoop-daemon.sh stop datanode