c语言sscanf函数的用法是什么
385
2022-11-20
Hadoop之——Hadoop3.x集群动态增加和删除DataNode与NodeManager节点
本文是在《Hadoop之——基于3台服务器搭建Hadoop3.x集群(实测完整版)》博文的基础上进行操作的,在原有Hadoop集群的基础上动态增加并删除“binghe204”服务器上的DataNode与NodeManager节点。
一、准备工作
主要准备的工作有:
(1)安装主机名为“binghe204”的虚拟机,并设置虚拟机静态IP、关闭防火墙、添加hadoop用户、设置主机名、设置主机名与IP地址的关系、配置SSH免密码登录。
注意:此步骤可参见博文《Hadoop之——基于3台服务器搭建Hadoop3.x集群(实测完整版)》。
(2)将新安装的“binghe204”虚拟机的主机名与IP地址的对应关系和SSH免密码登录同步到其他服务器,使其他服务器与“binghe204”服务器互通,具体操作如下:
配置主机名与IP地址的对应关系
在“binghe204”服务器上执行如下操作:
vim /etc/hosts
在文件“/etc/profile”中添加如下内容:
192.168.175.201 binghe201192.168.175.202 binghe202192.168.175.203 binghe203192.168.175.204 binghe204
并将“/etc/profile”文件同步到其他3台服务器,具体操作如下:
sudo scp /etc/hosts binghe201:/etc/sudo scp /etc/hosts binghe202:/etc/sudo scp /etc/hosts binghe203:/etc/
配置SSH免密码登录并与其他服务器互通
在“binghe204”服务器上执行如下操作:
ssh-keygen -t rsacat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keyschmod 700 /home/hadoop/ chmod 700 /home/hadoop/.ssh chmod 644 /home/hadoop/.ssh/authorized_keys chmod 600 /home/hadoop/.ssh/id_rsassh-copy-id -i /home/hadoop/.ssh/id_rsa.pub binghe201ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub binghe202ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub binghe203ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub binghe204
在“binghe201”、“binghe202”和“binghe203”服务器上分别执行如下操作:
ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub binghe204
此时,在“binghe204”服务器上设置了SSH免密码登录并与其他服务器完成了互通操作。
(3)复制“binghe201”服务器上的JDK和Hadoop到“binghe204”服务器的对应目录下,同时复制“binghe201”服务器的“/etc/profile”系统环境变量到“binghe204”服务器上。
在“binghe201”上执行如下操作:
scp -r /usr/local/jdk1.8.0_212/ binghe204:/usr/local/scp -r /usr/local/hadoop-3.2.0/ binghe204:/usr/local/sudo scp /etc/profile binghe204:/etc/
(4)修改“binghe204”服务器上的“/etc/profile”文件
在“binghe204”服务器上,删除“/etc/profile”文件中有关Zookeeper的配置,删除Zookeeper配置之后在“/etc/profile”文件中添加的配置如下:
JAVA_HOME=/usr/local/jdk1.8.0_212HADOOP_HOME=/usr/local/hadoop-3.2.0CLASS_PATH=.:$JAVA_HOME/libPATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport JAVA_HOME ZOOKEEPER_HOME HADOOP_HOME CLASS_PATH PATHexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_YARN_HOME=$HADOOP_HOMEexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
至此,在Hadoop集群中动态添加和删除DataNode与NodeManager节点的准备工作就完成了。
二、动态添加DataNode和NodeManager节点
1.查看集群的状态
(1)查看HDFS各节点状态
hdfs dfsadmin -report
可以看到添加DataNode节点之前,DataNode节点总共有3个,分别在“binghe201”、“binghe202”和“binghe203”服务器上。
(2)查看YARN各节点状态
yarn node -list
可以看到添加NodeManager之前,NodeManager进程运行在“binghe201”、“binghe202”和“binghe203”服务器上。
2.添加DataNode和NodeManager节点
(1)在workers文件中新增“binghe204”
在所有服务器的Hadoop workers文件中添加“binghe204”节点,具体如下:
-bash-4.1$ vim /usr/local/hadoop-3.2.0/etc/hadoop/workers binghe201binghe202binghe203binghe204
(2)启动“binghe204”服务器上的DataNode和NodeManager
具体启动操作命令如下
hdfs --daemon start datanodeyarn --daemon start nodemanager
(3)刷新节点
在“binghe201”服务器上执行如下命令,刷新Hadoop集群节点。
hdfs dfsadmin -refreshNodesstart-balancer.sh
3.再次查看集群的状态
(1)查看HDFS各节点状态
hdfs dfsadmin -report
可以看到,添加DataNode节点后,输出的结果中存在“binghe204”服务器上的DataNode节点。说明添加DataNode节点成功。
(2)查看YARN各节点状态
yarn node -list
可以看到,存在“binghe204”服务器上的NodeManager节点,说明NodeManager节点添加成功
三、动态删除DataNode节点与NodeManager节点
1.删除DataNode与NodeManager节点
(1)停止DataNode和NodeManager进程
在“binghe204”节点上停止DataNode和NodeManager节点,在“binghe204”服务器上执行的具体操作如下:
hdfs --daemon stop datanodeyarn --daemon stop nodemanager
(2)删除workers上的“binghe204”
删除每台服务器上Hadoop的workers文件中的“binghe204”,删除后的文件内容如下:
-bash-4.1$ vim /usr/local/hadoop-3.2.0/etc/hadoop/workersbinghe201binghe202binghe203
(3)刷新节点
在“binghe201”服务器上执行如下命令,刷新Hadoop集群节点。
hdfs dfsadmin -refreshNodesstart-balancer.sh
2.查看集群状态
(1)查看HDFS各节点状态
hdfs dfsadmin -report
可以看到,在输出的信息中没有“binghe204”服务器上的DataNode节点,说明“binghe204”服务器上的DataNode节点删除成功。
(2)查看YARN各节点状态
yarn node -list
可以看到,在输出的信息中没有“binghe204”服务器上的NodeManager节点,说明“binghe204”服务器上的NodeManager节点删除成功。
四、动态删除DataNode节点与NodeManager节点的另一种方式
这种方式不需要删除workers文件中现有的“binghe204”服务器配置,需要按照如下方式进行配置。
1.配置NameNode节点的hdfs-site.xml
适当减小dfs.replication副本数,增加dfs.hosts.exclude配置如下:
2.创建excludes文件
在“binghe201”服务器上的/usr/local/hadoop-3.2.0/etc/hadoop/目录下创建excludes文件,将要删除的“binghe204”服务器节点的主机名或IP地址配置到这个文件中,具体如下:
vim /usr/local/hadoop-3.2.0/etc/hadoop/excludesbinghe204
3.刷新节点
在“binghe201”服务器上执行如下命令,刷新Hadoop集群节点。
hdfs dfsadmin -refreshNodesstart-balancer.sh
这种方式也可以实现动态删除DataNode和NodeManager节点。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~