HDFS的副本放置策略(机架感知 rack awareness)

HDFS的副本放置策略利用机架感知,通过配置`topology.script.file.name`来确定datanode的rackid。网络拓扑中的距离计算影响副本放置,例如:同一datanode距离为0,同一rack为2,同一IDC为4,不同IDC为6。策略包括:第一个副本放client所在node,第二个副本放不同机架,第三个副本放同一机架但不同node,更多副本随机分布。
摘要由CSDN通过智能技术生成

 topology.script.file.name

 

 HDFS不能够自动判断集群中各个datanode的网络拓扑情况。这种机架感知需要topology.script.file.name属性定义的可执行文件(或者脚本)来实现,文件提供了IP->rackid的翻译。NameNode通过这个得到集群中各个datanode机器的rackid。如果topology.script.file.name没有设定,则每个IP都会翻译成/default-rack。

 

 下面给出了一个script文件的c语言示例。这个文件需要处理多个输入参数的情况,每个参数是个ip。文件的输出对应就是rackid串。

   int main(int argc , char *argv[])
   {

 


                for(int i=1 ;i< argc; i++)
                {
                        char* ipStr     = argv[i];

                         //  找到ip对应的rack设置,下面的
                        cout<<"/rack1/"<<i<<" ";

                 }
                        cout<< endl;


   }

 

 

 

  网络拓扑

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值