什么是CDH机架感知
1 | 机架感知是一种计算不同计算节点之间距离的技术,用以在任务调度过程中尽量减少网络带宽资源的消耗,除此之外,NameNode通过机架感知,可以确定每个DataNode所属的机架ID,优化数据副本存放策略。 |
1 | Hadoop作为典型的大数据处理平台,为充分发挥数据本地性的优势,避免数据跨网络传输,优化集群网络带宽资源,最大程度发挥Hadoop的性能,通常会为Hadoop集群配置机架感知,要为Hadoop集群配置机架感知,需要提前知道Hadoop集群的网络拓扑结构。一般来说,配置机架感知就是将逻辑机架和物理机架一一对应。 |
HDFS副本存放策略
1 | HDFS最经典的副本存放策略就是“3副本策略”,其使用的是BlockPlacementPolicyDefault策略类。 |
BlockPlacementPolicyDefault策略类–主要内容如下:
1 | 第一个: 副本放在发起写请求的客户端上。 |
Web界面-配置机架感知
1 | 配置机架感知需要人为地告诉Namenode哪台Datanode位于哪个机架下,将真实的网络拓朴和机架信息了解清楚后,通过机架感知脚本将机器的IP地址正确的映射到相应的机架上去,使逻辑机架与物理机架保持一致。 |
1 | 默认情况下,机架感知是没有启用的,这时任何一台 Datanode 节点,不管物理上是否属于同一个机架,Namenode 都会默认将他们划分到/default-rack下。 |
CM管理界面-配置机架感知
1 | 主机 ---> 选中主机 ---> 点击“已选中的操作” ---> 分配机架 |
让变更生效
1 | 若要使机架感知变更生效,需要重启所有namenode服务【重启1个,服务恢复后,观察无异常,再重启另一个节点】 |
编辑文件-配置机架感知
1 | 默认情况下,namenode启动时候日志是这样的: |
1 | 要将hadoop机架感知的功能启用,配置非常简单: 编辑NameNode所在节点的/etc/hadoop/conf下的core-site.xml 文件 |
1 | cat /etc/hadoop/conf/core-site.xml |
1 | 真正作用于机架感知的配置文件位于目录: /etc/hadoop/conf目录下的 topology.map文件,编辑修改即可。[所有namenode节点都需要变更],修改完毕后,重启所有namenode节点 |
验证机架感知
使用HDFS命令打印CDH集群机架信息
1 | # sudo -u hdfs hdfs dfsadmin -printTopology |
参考:云社区
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2018/11/29/为CDH-CM集群配置机架感知/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!