Reduce对Pig作业性能的影响
来源:互联网 发布:淘宝海报图片 编辑:程序博客网 时间:2024/04/27 14:45
Amber Zhao Wed, Feb 25 2015 3:36 AM
很多用户在使用HDInsight的Pig功能时,发现有时很简单一个Pig Latin的relation会花费很长时间执行,当HDI使用MR框架时,由于Pig会根据具体的relation拆分成相应的Map和Reduce任务。根据Hadoop的MR框架如下特点,针对Reduce并行度的优化,会对Pig的作业有很大的性能影响。
Hadoop的MR框架中有以下特点:
- Map的并行度个数是由输入文件来决定,而Reduce并行度的个数是由Parallel关键字来决定。
- 当不指定parallel关键字时, Reduce task仅有一个。
- Reduce的并行度依赖于cluster的规模。
具体内容看如下文档:http://wiki.apache.org/pig/PigLatin
当我们使用Get-AzureHDInsightJobOutput来进一步分析Pig作业的具体执行情况,我们可以通过Pig作业执行的具体日志来查看Map和Reduce的效率。如下为当使用group by的Pig作业的日志信息:
===================================================
测试1:默认一个Reduce的Pig 作业,执行Pig作业花费了74分钟:
-----------------------------
2015-02-10 09:01:27,937 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 0% complete
2015-02-10 09:02:43,446 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 4% complete
…
2015-02-10 10:15:18,029 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 100% complete
…
JobId Maps Reduces MaxMapTime MinMapTIme AvgMapTime MedianMapTime MaxReduceTime MinReduceTime AvgReduceTime MedianReducetime Alias Feature Outputs
job_1423547880282_0013 482 1 418 23 63 63 4314 4314 4314 4314 analyzed,grpd,outtuple GROUP_BY wasb:///home/ambertest1_32node,
-----------------------------
测试2:优化为80个Reduce的Pig 作业,执行同样的Pig 作业花费了6分钟:
-----------------------------
2015-02-23 12:05:46,885 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 0% complete
2015-02-23 12:07:06,056 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 4% complete
…
2015-02-23 12:11:27,168 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher- 100% complete
JobId Maps Reduces MaxMapTime MinMapTIme AvgMapTime MedianMapTime MaxReduceTime MinReduceTime AvgReduceTime MedianReducetime Alias Feature Outputs
job_1423547880282_0049 482 80 134 19 57 61 204 70 153 155 analyzed,grpd,outtuple GROUP_BY wasb:///home/ambertest9_32node,
-----------------------------
===================================================
以上Pig Latin作业主要使用的是 Group by来声明Pig的relation,此外针对其它等同样需要使用reduce关键字的Pig作业,有以下优化建议:
1. 在具体执行的Pig Latin中指定所需的Reduce并行度,具体语句如下:
SET default_parallel 80; <根据具体HDIcluster的规模设定Reduce的并行度>
2. 设定整个HDI cluster的MR框架的Reduce并行度,方法如下:
修改mapred-site.xml文件的如下属性:
<property>
<name>mapreduce.job.reduces</name>
<value>80</value>
</property>
如果你有任何疑问,欢迎访问MSDN社区,由专家来为您解答Windows Azure各种技术问题,或者拨打世纪互联客户服务热线400-089-0365/010-84563652咨询各类服务信息。
本文转载自: http://blogs.msdn.com/b/cciccat/archive/2015/02/25/reducer-number-for-pig-job.aspx
- Reduce对Pig作业性能的影响
- Reduce对Pig作业性能的影响
- TeraSort实验--测试Map和Reduce Task数量对Hadoop性能的影响
- TeraSort实验--测试Map和Reduce Task数量对Hadoop性能的影响
- TeraSort实验--测试Map和Reduce Task数量对Hadoop性能的影响
- TeraSort实验--测试Map和Reduce Task数量对Hadoop性能的影响
- ToString()对性能的影响
- 视图对性能的影响
- synchronized 对性能的影响
- arraysize 对性能的影响
- 视图对性能的影响
- 文件系统对性能的影响
- malloc的标志对性能的影响
- static局部变量对性能的影响
- Ajax 对Web性能的影响分析
- Log4J对应用性能的影响
- Log4J对应用性能的影响
- 临时对象对软件性能的影响
- 数组 3Sum
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- android获取手机内部存储空间和外部存储空间
- ibatis中使用like模糊查询
- UNITY3D 使用 litjson 制作数据表
- Reduce对Pig作业性能的影响
- android动画坐标定义
- Android 自定义的圆形变化ProgressBar
- [转]一个手机游戏的服务器架构
- 学习C指针的心得随笔
- Leetcode:Palindrome Partitioning
- error和exception的区别,RuntimeException和非RuntimeException的区别
- RT-Thread 学习笔记(十一)--- 开启基于RTGUI的LCD显示功能(1)<LCD驱动接口移植>
- python学习笔记3