有时,数据块以不平衡的方式跨数据节点存储。基于hdfs块放置策略,第一个副本倾向于存储在writer节点(即客户机节点)上,然后第二个副本存储在远程机架上,第三个副本存储在本地机架上。在这种布局策略下,哪些用例会使数据块在数据节点之间不平衡?一个可能的原因是,如果writer节点很少,那么数据块的一个副本将存储在这些节点上。还有其他原因吗?
u3r8eeie1#
以下是数据倾斜的一些潜在原因:如果一些datanode在一段时间内不可用(不接受请求/写入),集群最终可能会不平衡。tasktracker没有在集群节点上与datanodes均匀地并置。如果我们在这种情况下通过mapreduce写入数据,集群可能会不平衡,因为同时承载tasktracker和datanode的节点将是首选。同上,但与hbase的区域服务器相同。数据的大量删除可能会导致不平衡的簇,这取决于删除的块的位置。添加新的datanodes不会自动重新平衡集群中的现有块。“hdfs balancer”命令允许管理员重新平衡集群。也,https://issues.apache.org/jira/browse/hdfs-1804 添加了一个新的块存储策略,该策略考虑了卷上剩余的可用空间。
1条答案
按热度按时间u3r8eeie1#
以下是数据倾斜的一些潜在原因:
如果一些datanode在一段时间内不可用(不接受请求/写入),集群最终可能会不平衡。
tasktracker没有在集群节点上与datanodes均匀地并置。如果我们在这种情况下通过mapreduce写入数据,集群可能会不平衡,因为同时承载tasktracker和datanode的节点将是首选。
同上,但与hbase的区域服务器相同。
数据的大量删除可能会导致不平衡的簇,这取决于删除的块的位置。
添加新的datanodes不会自动重新平衡集群中的现有块。
“hdfs balancer”命令允许管理员重新平衡集群。也,https://issues.apache.org/jira/browse/hdfs-1804 添加了一个新的块存储策略,该策略考虑了卷上剩余的可用空间。