hadoop2.7.2学习笔记09-机架敏感

来源:互联网 发布:为什么python国内不火 编辑:程序博客网 时间:2024/06/05 07:19

hadoop的master进程可以通过外部脚本或者java类来获取slaves的机架信息。无论用哪种方式,得到的拓扑结构都必须符合org.apache.hadoop.net.DNSToSwitchMapping接口。该接口的拓扑信息格式是‘/myrack/myhost’。设想每个机架都是一个24位掩码的子网,‘/192.168.100.0/192.168.100.5’即可表示唯一的一个‘机架-主机’映射关系。


若选择使用java类来产生拓扑映射关系,需要在配置文件中指定topology.node.switch.mapping.impl参数。


若选择使用外部脚本,则需要在配置文件中指定topology.script.file.name参数。hadoop在执行该外部脚本时会传递很多IP地址作为参数。传给该脚本的IP地址个数由参数net.topology.script.number.args配置,且默认值是100。如果将该参数配置为1,该脚本将会为DataNodes和NodeManager提交的每个IP执行一次。


如果topology.script.file.nametopology.node.switch.mapping.impl都没有配置,默认机架id——‘/default-rack’将会返回给每个传来的IP地址。这样hadoop认为所有节点都在一个机架上。


另一个配置参数mapreduce.jobtracker.taskcache.levels决定mapreduce使用的缓存的级数(在网络拓扑中)。它的默认值是2,一级是主机(host->task mapping),另一级是机架(rack->task mapping)。

0 0
原创粉丝点击