我有一个由4台机器组成的集群,需要对其运行基准测试。我决定使用terasort进行基准测试。但是,当我运行基准测试时,四台机器中只有一台处于负载状态,而其他三台完全处于空闲状态。如果我再运行一次测试,另一台机器将完全处于负载状态,而其他三台机器将处于空闲状态。当我用teragen创建数据集时,一切都正常工作,负载在所有四台机器之间均匀分布。这种配置有什么问题?谢谢
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
祝你好运!!!
1条答案
按热度按时间eoxn13cs1#
我希望您的集群能够正确地分布为4个节点(1个名称节点、1个辅助名称节点、2个数据节点)
流程流的发生就像它从name node开始一样,job tracker将为包含数据块的task tracker调度作业。
数据节点的使用取决于几个因素,如复制的数量、Map器的数量和块的数量。
如果块的数量很多,它将均匀地放置在集群的所有数据节点中。如果复制因子为2,则两个数据节点中的块都可用。所以两个人都可以运行处理这些块的Map程序
如果一个文件有两个块,两个Map器将同时在数据节点中运行,并正确利用资源。
在您的情况下,块大小似乎是问题所在。尽量减少。因此,应该有至少2块,使利用率将更高,因此是性能。
hadoop可以根据您的需要通过以下设置进行调优。
祝你好运!!!