AWS EMR HBase集群手动扩容后dfs.replication未从1更新至2
手动扩容EMR Core节点后调整HDFS副本因子的方案
原因说明
EMR仅在集群初始创建阶段根据Core节点数量自动配置HDFS副本因子,手动扩容属于运行时调整,不会触发自动更新副本因子的逻辑,因此需要手动完成以下操作:
操作步骤
修改集群级HDFS副本因子配置
- 控制台方式:进入EMR控制台对应集群的「配置」页面,找到HDFS服务的配置组,将
dfs.replication参数值修改为2,保存后EMR会自动同步配置到所有节点的hdfs-site.xml文件。 - CLI方式:在本地终端执行以下命令(替换
<cluster-id>为你的集群ID):aws emr set-cluster-configuration --cluster-id <cluster-id> --configuration '[{"Classification":"hdfs-site","Properties":{"dfs.replication":"2"}}]'
- 控制台方式:进入EMR控制台对应集群的「配置」页面,找到HDFS服务的配置组,将
同步现有数据的副本数
新配置仅对后续写入的数据生效,已有数据需要手动触发副本同步:- 登录到集群Master节点,执行递归修改副本数的命令:
hdfs dfs -setrep -R 2 / - 可通过以下命令查看同步进度,确认所有块的副本数达标:
hdfs dfsadmin -report
- 登录到集群Master节点,执行递归修改副本数的命令:
验证配置生效
- 登录任意节点,检查
/etc/hadoop/conf/hdfs-site.xml文件,确认dfs.replication值已更新为2。 - 写入测试文件后,用以下命令验证副本数:
输出中会显示该文件的块副本数为2。hdfs fsck /test_hdfs_file -files -blocks -locations
- 登录任意节点,检查
内容的提问来源于stack exchange,提问作者Sanjeev Dhiman
相关产品推荐
相关产品推荐

