首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop Terasort不稳定基准结果

Hadoop Terasort不稳定基准结果
EN

Stack Overflow用户
提问于 2013-11-07 11:05:45
回答 1查看 3.4K关注 0票数 2

我有一个Cloudera集群,我正在做一些运行Terasort的基准测试,但是我在105-150分钟内得到了非常不稳定的结果。有些时候,我看到它比平常复制得更多,或者做了很多垃圾收集,但也有一些时候,它们几乎是一样的。

我不知道结果不稳定的原因,任何提示或建议都是非常欢迎的:)

我运行基准如下:

我选择了地图的数量,并按照本指南http://wiki.apache.org/hadoop/HowManyMapsAndReduces减少了任务

投机地图和减少执行停止。

  • 生成数据集:

10,000,000,000行100字节~= 953674 M

块大小= 128 MB

映射任务数= 3725 (行数*行大小)/(块大小*2)我执行2次,因为映射任务时间太短,比如7秒。

代码语言:javascript
复制
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
  • 运行时间:

num-of工-节点=4

每个节点的核数=8

减少任务= 56 ( 1.75 *num-of工-节点*num-of-cores每节点)

代码语言:javascript
复制
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内存和2 HD -只运行HDFS和MapReduce:

  • 第一个节点,只是主角色:

代码语言:javascript
复制
- Namenode.
- Cloudera management services.

  • 第二个节点,只是主角色:

代码语言:javascript
复制
- JobTracker.
- SecondaryNamenode.

  • 第3至第6个节点,仅为工作角色:

代码语言:javascript
复制
- TaskTracker.
- Datanode.

我使用第二个节点作为客户端,因为它是负载最少的节点。

如果您需要任何配置、属性值或细节,请告诉我。

更新:在Chris White的回答之后,我试图减少工作跟踪器和任务跟踪器之间的轮询数,方法是只有1名工作人员,很少有地图,并且减少了,现在基准测试非常稳定:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-07 11:30:54

在查看性能时,需要考虑许多因素:

这可能是一个轮询问题,再加上可用的少量处理槽。

任务跟踪器定期对正在运行的任务进行轮询,以确定它们是否已经完成,而作业跟踪器也会轮询任务跟踪器。如果你的3700个地图任务(如果我正确地阅读了你的问题),如果在投票时间上有1秒的差异,那么这就可以解释你在计时上看到的~小时。

如果您有一个更大的集群具有更多的处理槽,我想这个数目会变得更稳定,但是没有哪个MR job都有固定的运行时间,有太多的轮询和其他外部时间(例如JVM启动时间)可以调整整个运行时。

对于这两个工作,数据局部性计数器是怎么说的?如果一个作业比另一个作业有更多的数据锁定任务,那么我希望它也能运行得很快。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19834310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档