hadoop terasort不稳定的基准测试结果

nue99wik  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(473)

我有一个ClouderaHadoop集群,我正在运行terasort做一些基准测试,但是我在105-150分钟内得到了非常不稳定的结果。有时我看到它比平时复制的次数多,或者做了很多垃圾收集,但有时它们几乎是一样的。
我不知道结果不稳定的原因,欢迎任何提示或建议:)
我运行的基准如下:
我已经选择了Map的数量,并根据本指南减少了任务http://wiki.apache.org/hadoop/howmanymapsandreduces
“推测贴图”和“减少执行”处于禁用状态。
正在生成数据集:
100字节1000000000行~=953674m
块大小=128 mb
maps任务数=3725(行数行大小)/(块大小2)我做2次,因为maps任务时间太少,比如7秒。

sudo -u hdfs hadoop jar /usr/lib/hadoop-0.20-mapreduce/hadoop-examples.jar teragen -Ddfs.replication=3 -Dmapred.map.tasks=3725 10000000000 /terasort-in

运行terasort:
工作节点数=4
每个节点的核心数=8
reduce tasks=56(1.75工作节点数每个节点的核心数)

sudo -u hdfs hadoop jar /usr/lib/hadoop-0.20-mapreduce/hadoop-examples.jar terasort -Ddfs.replication=1 -Dmapred.reduce.tasks=56 /terasort-in /terasort-out

节点间的服务和角色分布如下:
6个节点—8核、16 gb ram和2个hd—仅运行hdfs和mapreduce:
第一个节点,只是主角色:
名称节点。
cloudera管理服务。
第二个节点,只是主角色:
求职者。
secondarynamenode。
第3到第6个节点,仅工作角色:
任务跟踪器。
数据节点。
我使用第二个节点作为客户端,因为它是负载最低的节点。
请告诉我您是否需要任何配置属性值或详细信息。
更新:在chris white的回答之后,我试着减少jobtracker和tasktrackers之间的民意调查数量,只需要一个工人和很少的map和reduces,现在基准非常稳定:)

qhhrdooz

qhhrdooz1#

在考察绩效时,您需要考虑许多因素:
这可能是一个轮询问题,再加上可用的处理插槽数量较少。
任务跟踪器定期轮询正在运行的任务以确定它们是否已完成,作业跟踪器还轮询任务跟踪器。对于您的~3700个map任务(如果我正确阅读了您的问题),如果轮询时间有~1秒的差异,那么这可以解释您看到的~1小时的时间差异。
如果您有一个更大的集群,有更多的处理槽,我想这个数字会变得更稳定,但是没有一个mr作业每个都有一个固定的运行时间,有太多的轮询和其他外部计时(例如jvm启动时间)可以调整整个运行时。
两个作业的数据位置计数器都表示什么?如果一个作业比另一个作业有更多的数据锁任务,那么我希望它运行得也很快。

相关问题