Hadoop,机器之间的负载不均

时间:2016-01-19 10:34:54

标签: hadoop distributed-computing

我有一组4台机器需要运行基准测试。

我决定使用Terasort进行基准测试。

然而,当我运行基准测试时,只有四分之一的机器处于负载状态,而其他三台机器完全处于空闲状态。

如果我再次运行测试,则另一台机器将完全处于负载状态,而其他三台机器将处于空闲状态。

当我使用Teragen创建数据集时,一切正常,负载在四台机器之间均匀分布。

此配置可能出现什么问题?

由于

1 个答案:

答案 0 :(得分:0)

我希望您的群集作为4个节点(1个名称节点,1个辅助名称节点,2个数据节点)正确分发

流程流程就像以name-node开头一样,作业跟踪器将为具有数据块的任务跟踪器安排作业。

数据节点的使用取决于几个因素,如复制数,映射器数和块数。

如果块数很多,它将均匀地放置在群集的所有数据节点中。如果复制因子为2,则两个数据节点中的块都可用。所以两者都可以运行处理这些块的映射器

如果文件有两个块,则两个映射器将同时在数据节点中运行并正确使用资源。

在你的情况下,似乎块大小是问题。尽量减少它。所以应该至少有2个块,这使得利用率会更高,性能也是如此。

可以根据您的需要使用以下设置调整Hadoop。

dfs.replication in hdfs-site.xml
dfs.block.size in hdfs-site.xml
祝你好运!!!