Hdfs复制因子1覆盖默认行为

问题描述 投票:1回答:2

有没有办法覆盖hdfs上第一个副本块的默认行为?

我想要做的是确保当我设置dfs.replication = 1时块的副本位于不同的datanode上

hdfs hadoop2
2个回答
0
投票

您需要实施自己的块放置策略。但这真的不难。你的班级应该扩展org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy。您想要实现的内容非常简单,因此只需复制default block placement policy class并对其进行修改,使其行为符合要求。


0
投票

使用CLI覆盖复制和块大小:

这里我为这个文件设置复制因子2:

~]$ hadoop fs -D dfs.replication=2 -put -f /home/cloudera/cricketers /user/cloudera/Dec_17_2017/Dec_18

这里我为此文件设置块大小= 128 MB:

 ~]$ hadoop fs -D dfs.block.size=134217728  -put -f /home/cloudera/cricketers /user/cloudera/Dec_17_2017/Dec_18

此处为此文件设置块大小= 128 MB和复制= 2:

~]$ hadoop fs -D dfs.block.size=134217728  -D dfs.replication=2 -put -f /home/cloudera/cricketers /user/cloudera/Dec_17_2017/Dec_18
© www.soinside.com 2019 - 2024. All rights reserved.