Hadoop rack awareness机架感知

rack awareness机架感知:将主机分为数据中心-机架-主机,构建网络拓扑图,三层结构,使用目录将每个主机进行管理起来。
    优点:副本策略、保持数据高可靠性。
                单副本:本地节点
                双副本:本地节点、另一个机架节点
                三副本:本地节点、另一个机架节点、相同机架不同主机
                多副本:三副本以外的随机主机节点
            原则:一个主机一个备份
                  副本数少于两倍机架数,一个机架副本数量不能大于两个副本
          数据读取等开销最小化。
            根据客户端请求主机的目录判断远近,来控制哪些节点优先响应。
    实例:
        1、编辑节点分配策略 racks.py 赋予执行权限
        

import netaddr
import sys 
sys.argv.pop(0) # 从 argv 列表中丢弃拓扑脚本的名称,因为我们只需要 IP 地址
		
netmask = '255.255.255.0' # 将网络掩码设置为您的环境中使用的网络掩码。示例使用 /24 
		
for ip in sys.argv: # 循环遍历数据节点 IP 列表
	address = '{0}/{1}'.format(ip, netmask) # 格式化地址字符串,使其看起来像“ip/netmask”,以使 netaddr 工作
	try: 
		network_address = netaddr.IPNetwork(address).network # 计算并打印网络地址
		print("/{0}".format(network_address)) 
	except: 
		print("/rack-unknown") # 如果无法计算网络地址,则打印 catch-all 值


        2、在core-site.xml配置文件中增加路径
        

  <property>
       <name>net.topology.script.file.name</name>
       <value>${HADOOP_HOME}/racks.py</value>
  </property>


        3、测试
            启动HDFS start-dfs.sh
            打印所有机架主机打印拓扑树
                hdfs dfsadmin -printTopology

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值