hadoop扩容和移除节点

本文详细介绍了如何在Hadoop集群中添加和删除节点,包括配置无密码登录、更新配置文件、执行必要的Hadoop命令等步骤,并提供了注意事项确保操作顺利进行。

1:添加节点

A:新节点中添加账户,设置无密码登陆

B:Name节点中设置到新节点的无密码登陆

C:在Name节点slaves文件中添加新节点

D:在所有节点/etc/hosts文件中增加新节点(所有节点保持一致)

E:在新节点中执行

./bin/hadoop-daemon.sh start datanode
./bin/hadoop-daemon.sh start tasktracker

均衡个数据节点中的数据
./bin/start-balancer.sh
注意:

1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长
./bin/start-balancer.sh -threshold 5
3)设置balance的带宽,默认只有1M/s
<property>
  <name>dfs.balance.bandwidthPerSec</name> 
  <value>1048576</value> 
  <description> 
    Specifies the maximum amount of bandwidth that each datanode  
    can utilize for the balancing purpose in term of  
    the number of bytes per second.  
  </description>
</property>

2.删除节点

A:修改Name节点的hdfs-site.xml增加

<property>
    <name>dfs.hosts.exclude</name>
    <value>/soft/hadoop/conf/excludes</value>
</property>
B:修改Name节点的mapred-site.xml增加

<property>
   <name>mapred.hosts.exclude</name>
   <value>/soft/hadoop/conf/excludes</value>
   <final>true</final>
</property>
C:新建excludes文件,文件里写要删除节点的hostname

D:Name节点执行

hadoop mradmin –refreshNodes
hadoop dfsadmin –refreshNodes<br>(task进程可以kill进程ID)
查看关闭进程
hadoop dfsadmin -report
当节点处于Decommissioned,表示关闭成功。
注意:如果数据较大则关闭的时间可能会很长

Hadoop 集群动态扩缩容实验主要涉及 HDFS 集群的节点添加扩容移除(缩容)操作,同时需要考虑数据均衡以保证集群性能。 #### 实验准备 - **环境搭建**:准备好 Hadoop 集群环境,确保各节点间网络连通,时钟同步。例如,使用 Hadoop 3.1.3 版本,集群包含主节点(NameNode)若干从节点(DataNode)。 - **配置文件**:在主节点节点上正确配置 `core-site.xml`、`hdfs-site.xml` 等文件,确保集群正常运行。 #### 扩容实验 - **新增节点准备**:新增节点需要安装与现有集群相同版本的 Hadoop,并配置好环境变量。将新增节点的主机名 IP 地址添加到主节点的 `slaves` 文件中。 - **启动新节点**:在主节点上执行 `sbin/hadoop-daemon.sh start datanode` 启动新增节点的 DataNode 服务。 - **数据均衡**:新增节点初始没有数据,需要进行数据均衡操作。在主节点上进入 Hadoop 安装目录,执行 `sbin/start-balancer.sh -threshold 10` 开启数据均衡,其中 `-threshold 10` 表示数据块分布的不均衡度阈值为 10%。当均衡完成后,可执行 `sbin/stop-balancer.sh` 停止均衡进程 [^1]。 #### 缩容实验 - **配置黑名单**:将需要移除节点添加到主节点的 `dfs.hosts.exclude` 文件中。 - **刷新节点列表**:在主节点上执行 `hdfs dfsadmin -refreshNodes` 刷新节点列表,NameNode 会将这些节点标记为待退役状态。 - **数据迁移**:HDFS 会自动将待移除节点上的数据迁移到其他节点。可以通过 `hdfs dfsadmin -report` 查看节点状态数据迁移进度。 - **停止节点服务**:当待移除节点上的数据迁移完成后,在该节点上执行 `sbin/hadoop-daemon.sh stop datanode` 停止 DataNode 服务。 #### 实验验证 - **查看集群状态**:使用 `hdfs dfsadmin -report` 查看集群的节点信息数据分布情况,确保扩容缩容操作后集群状态正常。 - **数据读写测试**:在集群上进行数据读写操作,验证集群的可用性性能。 ### 代码示例 以下是一个简单的 Python 脚本,用于监控 HDFS 集群的数据均衡进度: ```python import subprocess def check_balancer_status(): try: output = subprocess.check_output(['hdfs', 'balancer', '-verify'], universal_newlines=True) print(output) except subprocess.CalledProcessError as e: print(f"Error: {e}") if __name__ == "__main__": check_balancer_status() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值