确保HDFS集群中的Datanode高可用性

时间:2017-06-29 16:38:27

标签: hadoop hdfs hadoop2 high-availability

我有两个主节点和三个datanode HDFS集群设置。它们是AWS EC2实例。

我必须测试Datanodes的高可用性,即,如果在加载运行期间数据写入HDFS,则数据节点会死亡,然后就没有数据丢失。这两个重演 活着的datanode应该处理数据写入。

我在hdfs-site.xml中设置了以下属性。 dfs.replication = 2(因为如果任何一个datanode死掉,那么就没有能够满足复制因子的问题)

dfs.client.block.write.replace-datanode-on-failure.policy = ALWAYS
dfs.client.block.write.replace-datanode-on-failure.enable = true
dfs.client.block.write.replace-datanode-on-failure.best-effort = true

我的问题是:

1 - 设置上述属性是否足以满足我的Datanode高可用性?还是需要其他东西? 2 - 在dfs服务启动时,我确实在namenode日志上看到下面的INFO:

2017-06-27 10:51:52,546 INFO org.apache.hadoop.hdfs.server.blockmanagement.BlockManager: defaultReplication         = 2
2017-06-27 10:51:52,546 INFO org.apache.hadoop.hdfs.server.blockmanagement.BlockManager: maxReplication             = 512
2017-06-27 10:51:52,546 INFO org.apache.hadoop.hdfs.server.blockmanagement.BlockManager: minReplication             = 1
2017-06-27 10:51:52,546 INFO org.apache.hadoop.hdfs.server.blockmanagement.BlockManager: maxReplicationStreams      = 2

但我仍然看到在HDFS上创建的文件具有复制因子3.为什么会这样?这会损害我的Datanodes高可用性。

-rw-r--r--   3 hadoopuser supergroup     247373 2017-06-29 09:36 /topics/testTopic/year=2017/month=06/day=29/hour=14/testTopic+210+0001557358+0001557452
-rw-r--r--   3 hadoopuser supergroup       1344 2017-06-29 08:33 /topics/testTopic/year=2017/month=06/day=29/hour=14/testTopic+228+0001432839+0001432850
-rw-r--r--   3 hadoopuser supergroup       3472 2017-06-29 09:03 /topics/testTopic/year=2017/month=06/day=29/hour=14/testTopic+228+0001432851+0001432881
-rw-r--r--   3 hadoopuser supergroup       2576 2017-06-29 08:33 /topics/testTopic/year=2017/month=06/day=29/hour=14/testTopic+23+0001236477+0001236499

P.S。 - 我的记录由Confluent Kafka Connect HDFS Sink Connector在HDFS上编写。

0 个答案:

没有答案