hadoop,机器间负载不均衡

t0ybt7op  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(333)

我有一个由4台机器组成的集群,需要对其运行基准测试。
我决定使用terasort进行基准测试。
但是,当我运行基准测试时,四台机器中只有一台处于负载状态,而其他三台完全处于空闲状态。
如果我再运行一次测试,另一台机器将完全处于负载状态,而其他三台机器将处于空闲状态。
当我用teragen创建数据集时,一切都正常工作,负载在所有四台机器之间均匀分布。
这种配置有什么问题?
谢谢

eoxn13cs

eoxn13cs1#

我希望您的集群能够正确地分布为4个节点(1个名称节点、1个辅助名称节点、2个数据节点)
流程流的发生就像它从name node开始一样,job tracker将为包含数据块的task tracker调度作业。
数据节点的使用取决于几个因素,如复制的数量、Map器的数量和块的数量。
如果块的数量很多,它将均匀地放置在集群的所有数据节点中。如果复制因子为2,则两个数据节点中的块都可用。所以两个人都可以运行处理这些块的Map程序
如果一个文件有两个块,两个Map器将同时在数据节点中运行,并正确利用资源。
在您的情况下,块大小似乎是问题所在。尽量减少。因此,应该有至少2块,使利用率将更高,因此是性能。
hadoop可以根据您的需要通过以下设置进行调优。

dfs.replication in hdfs-site.xml
dfs.block.size in hdfs-site.xml

祝你好运!!!

相关问题