hadoop动态增删节点
目录
前提条件
已经在虚拟机配置好三个hadoop集群,本次集群是根据以下博客配置,大家可以参考一下2021年全国行业职业技能竞赛暨第四届全国大学生大数据技能竞赛——职教学生组线上选拔赛
资料链接
链接:https://pan.baidu.com/s/1Q2Z-roUoGSMkXNf1I4dThA
提取码:yikm
主一从二
增添节点
新建虚拟机并配置好初始化环境
时区同步和ntp同步:
操作环境:slave3
tzselect
依次输入:5 9 1 1
vim /etc/profile
添加:
TZ='Asia/Shanghai'; export TZ
source /etc/profile
date
ntpdate master
创建定时任务:
crotab -e
*/10 * * * * usr/sbin/ntpdate master
查看定时任务:
crontab -l
修改hosts文件:
操作环境:master,slave1,slave2,slave3
ping slave3测试(Ctrl+C停止):
操作环境:master
修改slaves:
操作环境:master,slave1,slave2
cd /usr/hadoop/hadoop-2.7.7/etc/hadoop/
vim slaves
增加slave3
免密登录ssh:
操作环境:master
ssh-copy-id slave3
ssh测试:
ssh slave3
exit
分发节点到slave3:
操作环境:master
scp -r /usr/java/ root@slave3:/usr/
scp -r /usr/hadoop/ root@slave3:/usr/
添加环境变量:
操作环境:slave3
vim /etc/profile
添加:
#java
export JAVA_HOME=/usr/java/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
验证java以及hadoop:
操作环境:slave3
java -version
hadoop version
添加DataNode:
操作环境:salve3
对于新添加的DataNode节点,需要启动datanode进程,从而加入集群中
cd /usr/hadoop/hadoop-2.7.7/
sbin/hadoop-daemon.sh start datanode
jps
在namenode(master)上刷新datanode:
操作环境:master
hdfs dfsadmin -refreshNodes
查看集群状况:
操作环境:master
hdfs dfsadmin -report
在web中查看:
matser:50070
注意:在windows上做主机名映射
平衡DataNode节点:
操作环境:master
cd /usr/hadoop/hadoop-2.7.7/sbin/
//对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M
hdfs dfsadmin -setBalancerBandwidth 67108864
//默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%
start-balancer.sh -threshold 5
添加NodeManager:
操作环境:master,slave3
//由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群
//在slave3上,运行 sbin/yarn-daemon.sh start nodemanager
//在ResourceManager,通过 yarn node -list 查看集群情况
删除节点
修改hdfs-site.xml:
操作环境:master
<property>
<!--dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个-->
<name>dfs.hosts.exclude</name>
<value>/usr/hadoop/hadoop-2.7.7/etc/hadoop/excludes</value>
</property>
创建并修改excludes文件:
操作环境:master
添加需要删除节点的IP
echo slave3 >> excludes
刷新节点配置情况:
操作环境:master
hadoop dfsadmin -refreshNodes
在web中查看:
此时在Web UI上就可以看到该节点变为Decommissioning状态,过一会就变为Dead了
也可以通过:hadoop dfsadmin -report 命令查看
重新加入删除的节点
1.在master的excludes文件中删除相应节点IP
2.在slave上重启datanode进程:hadoop-daemon.sh start datanode
3.在master上刷新节点配置情况:hadoop dfsadmin -refreshNodes