FAQ: FAQ-There are 3 datanode(s) running and 3 node(s)

问题描述/异常栈

Could only be replicated to 0 nodes instead of minReplication (=1).  There are 3 datanode(s) running and 3 node(s)

解决方案

1. 若目前DN只有3个节点,默认的3备份对于这种架构没有高可用。建议设置成2 dfs.replication=2
2. 当临时文件中存在大量小文件时,blockSize过大会导致NN认为DN存储耗尽。可以降低数据块大小,这样可以同时调度更多的BlockDN节点 dfs.blocksize=67108864
3. hdfs账号的limits配额调大,异常的配置只有4096。可以调整至1048576
4. 系统的net.core.somaxconn可以调整值4096,否则目前DN上的ipc.server.listen.queue.size 配置无法生效.
5. 配置任务失败重试;

问题原因

DN节点无法及时处理NN分配的操作,导致NN临时将DN节点加入黑名单;可通过分析NN Debug日志或DN服务日志进行具体原因排查;

作者:焦巍