分享

Hadoop(1)MapReduce 性能调优:性能测量(Measuring)

本帖最后由 pig2 于 2015-10-19 19:45 编辑
问题导读:
1.Hadoop自带测试MapReduce和环境性能指标的工具有哪些?
2.怎么用Hadoop CLI 抽取性能指标?

3.常见的性能监控工具有哪些?






6.1 测量MapReduce和环境的性能指标
性能调优的基础系统的性能指标和实验数据。依据这些指标和数据,才能找到系统的性能瓶颈。性能指标和实验数据要通过一系列的工具和过程才能得到。
这部分里,将介绍Hadoop自带的工具和性能指标。还将捎带介绍性能监控工具。


6.1.1 作业统计数据抽取工具
这一章中介绍的很多技术都需要从Hadoop中抽取作业和任务的性能指标。有以下三种办法抽取这些统计数据:
  • 用JobTracker UI来查看作业和任务的计数器。
  • 用Hadoop CLI(命令行界面)来查看作业和任务计数器。此外,还可以从作业历史信息中获得其他性能指标。
  • 用本书提供的工具来从作业历史中抽取性能指标
后两种工具的优势在于,既可以看现状信息,也可以看历史信息。好了,现在就开始介绍作业历史信息,以及怎么用Hadoop CLI和本书的工具来从中抽取性能指标。


6.1.2 作业历史信息和CLI(命令行界面)
每个MapReduce都会生成作业统计数据文件。在文件中有作业和任务的统计信息。查看这些统计信息的最便捷的方法就是使用Hadoop CLI。把这些统计信息抽取到HDFS的output目录中的过程命令如下:

[mw_shl_code=actionscript3,true]$ hadoop job -history output

Hadoop job: job_201112081615_0181

=====================================

Job tracker host name: localhost

Submitted At: 23-Dec-2011 08:55:22

Launched At: 23-Dec-2011 08:55:22 (0sec)

Finished At: 23-Dec-2011 08:55:37 (15sec)

Status: SUCCESS

Counters:



|Group Name |Counter name |Map Value |Reduce Value|Total |

-------------------------------------------------------------------

|FileSystem |FILE_BYTES_READ |0 |961,831 |961,831

|FileSystem |HDFS_BYTES_READ |696,068 |0 |696,068

|FileSystem |FILE_BYTES_WRITTEN |1,071,837 |1,071,519 |2,143,356

|FileSystem |HDFS_BYTES_WRITTEN |0 |784,221 |784,221

...



Analysis

=========

Time taken by best performing map task 2sec

Average time taken by map tasks: 2sec

Worse performing map tasks:

TaskId Timetaken

task_201112081615_0181_m_000001 2sec

...[/mw_shl_code]

上述输出信息只是这个命令得到的结果中的一小部分。如果要深入了解,还是亲自执行一下命令,看看全部的输出信息。在上述输出信息中,包含任务任务执行时间的平均值和最差值。通过这些信息,可以很快了解全体性能指标的大致状况。那么,作业的历史信息文件在哪呢?图6.1说明了它的位置:

img1.png


作业历史信息文件的后缀名是jar。尽管很迷惑人,但它实际上是文本文件,由JobHistory类整理而成。如果有兴趣,可以用JobHistory类来对这个jar文件作逆向工程,生成一个java形式的文件。这里可以只用Hadoop CLI来从HDFS ouput目录和NameNode log目录中抽取作业的统计信息。其实,本书提供的工具也可以完成这些工作。



6.1.2 监控
监控正在运行的MapReduce作业的CPU,内存,网络等各项性能指标无疑是重要的。了解这些指标可以避免硬件系统的部分闲置和过载。如果硬件系统过载了,那么由此而来的资源竞争,CPU上下文切换,内存页交换等就会浪费大量时间。如果硬件系统部分闲置了,那就是浪费资源。
要对系统的运行状态进行自动监控,然后才能够得到硬件系统的历史性能信息,并在特定的情况下发出警告信息。现在有很多这方面的工具:
  • Linux内置的系统活动收集器和报告工具
  • Nagios
  • Ganglia。Ganglia是监控集群的开源项目。它提供了富客户端和图表工具。并能够从Hadoop中获取统计信息。(图6.2)

img2.png



Hadoop(1)MapReduce 性能调优:性能测量(Measuring)
http://www.aboutyun.com/thread-15514-1-1.html


Hadoop(2)MapReduce 性能调优:理解性能瓶颈,诊断map性能瓶颈
http://www.aboutyun.com/thread-15517-1-1.html


Hadoop(3)MapReduce 性能调优:诊断reduce性能瓶颈
http://www.aboutyun.com/thread-15522-1-1.html


Hadoop(4)MapReduce 性能调优:诊断一般性能瓶颈
http://www.aboutyun.com/thread-15660-1-1.html


Hadoop(5)MapReduce 性能调优:诊断硬件性能瓶颈
http://www.aboutyun.com/thread-15534-1-1.html


Hadoop(6)MapReduce 性能调优:优化洗牌(shuffle)和排序阶段
http://www.aboutyun.com/thread-15545-1-1.html


Hadoop(7)MapReduce 性能调优:减小数据倾斜的性能损失
http://www.aboutyun.com/thread-15544-1-1.html


Hadoop(8)MapReduce 性能调优:优化MapReduce的用户JAVA代码
http://www.aboutyun.com/thread-15583-1-1.html



Hadoop(9)MapReduce 性能调优:优化数据序列化
http://www.aboutyun.com/thread-15658-1-1.html



Hadoop(10)MapReduce 文件处理:小文件
http://www.aboutyun.com/thread-15592-1-1.html


Hadoop(11)MapReduce 文件处理:基于压缩的高效存储(一)
http://www.aboutyun.com/thread-15626-1-1.html


Hadoop(12)MapReduce 文件处理:基于压缩的高效存储(二)
http://www.aboutyun.com/thread-15629-1-1.html









没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条