我有一组4台机器需要运行基准测试。
我决定使用Terasort进行基准测试。
然而,当我运行基准测试时,只有四分之一的机器处于负载状态,而其他三台机器完全处于空闲状态。
如果我再次运行测试,则另一台机器将完全处于负载状态,而其他三台机器将处于空闲状态。
当我使用Teragen创建数据集时,一切正常,负载在四台机器之间均匀分布。
此配置可能出现什么问题?
由于
答案 0 :(得分:0)
我希望您的群集作为4个节点(1个名称节点,1个辅助名称节点,2个数据节点)正确分发
流程流程就像以name-node开头一样,作业跟踪器将为具有数据块的任务跟踪器安排作业。
数据节点的使用取决于几个因素,如复制数,映射器数和块数。
如果块数很多,它将均匀地放置在群集的所有数据节点中。如果复制因子为2,则两个数据节点中的块都可用。所以两者都可以运行处理这些块的映射器
如果文件有两个块,则两个映射器将同时在数据节点中运行并正确使用资源。
在你的情况下,似乎块大小是问题。尽量减少它。所以应该至少有2个块,这使得利用率会更高,性能也是如此。
可以根据您的需要使用以下设置调整Hadoop。
dfs.replication in hdfs-site.xml
dfs.block.size in hdfs-site.xml
祝你好运!!!