Reduce对Pig作业性能的影响
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作业性能的影响的更多相关文章
- Hadoop作业性能指标及參数调优实例 (三)Hadoop作业性能參数调优方法
作者: Shu, Alison Hadoop作业性能调优的两种场景: 一.用户观察到作业性能差,主动寻求帮助. (一)eBayEagle作业性能分析器 1. Hadoop作业性能异常指标 2. Had ...
- Hadoop作业性能指标及參数调优实例 (二)Hadoop作业性能调优7个建议
作者:Shu, Alison Hadoop作业性能调优的两种场景: 一.用户观察到作业性能差,主动寻求帮助. (一)eBayEagle作业性能分析器 1. Hadoop作业性能异常指标 2. Hado ...
- HTTP/2 对 Web 性能的影响(下)
一.前言 我们在 HTTP/2 对 Web 性能的影响(上)已经和大家分享了一些关于 Http2 的二项制帧.多用复路以及 APM 工具等,本文作为姊妹篇,主要从 http2 对 Web 性能的影响. ...
- 05:Sysbench压测-innodb_deadlock_detect参数对性能的影响
目录 sysbench压测-innodb_deadlock_detect参数对性能的影响 一.OLTP测试前准备 二.进行OLTP测试 三.测试结果解读: 四.关于测试后的结论: 五.关于测试后的性能 ...
- 高性能JavaScript-JS脚本加载与执行对性能的影响
在web产品优化准则中,很重要的一条是针对js脚本的加载和执行方式的优化.本篇文章简单描述一下其中的优化准则. 1. 脚本加载优化 1.1 脚本位置对性能的影响 优化页面加载性能的原则之一是将scri ...
- JAVA 异常对于性能的影响
陶炳哲 - MAY 12, 2015 在对OneAPM的客户做技术支持时,我们常常会看到很多客户根本没意识到的异常.在消除了这些异常之后,代码运行速度与以前相比大幅提升.这让我们产生一种猜测,就是在代 ...
- smarty对网页性能的影响--开启opcache
在上一篇<smarty对网页性能的影响>中,默认没有开启opcache,于是我安装了一下zend opcache扩展,重新实验了一下,结果如下: 有smarty 用apache的ab命令进 ...
- C++ 性能剖析 (四):Inheritance 对性能的影响
(这个editor今天有毛病,把我的format全搞乱了,抱歉!) Inheritance 是OOP 的一个重要特征.虽然业界有许多同行不喜欢inheritance,但是正确地使用inheritanc ...
- css的!important规则对性能有影响吗
最近在做项目中发现很多CSS代码里面都使用!important去覆盖原有高优先级的样式.按照常理来说,越是灵活的东西,需要做的工作就会更多.所以想当然的认为像!important这样灵活.方便的规则如 ...
随机推荐
- 【Vmware】已有镜像文件的导入
1 虚拟机文件夹中各个文件简介 在创建虚拟机的时候会把相关的文件保存到一个文件夹中.我的机器是Windows 7,64位 ,保存的路径是: C:\Users\User\Documents\Virtu ...
- NSInvocation的使用(转)
转载自:http://www.cnblogs.com/pengyingh/articles/2359199.html http://blog.iosxcode4.com/?p=125 在 iOS中可以 ...
- UI元素的相对自适应
什么是UI元素的相对自适应 UI元素的相对自适应,顾名思义,是指两个UI元素之间保持一种相对的位置不要变化,例如,UI元素A永远处于UI元素B右边的50像素处位置.再比如,一个UI背景框,不论屏幕尺寸 ...
- cocos2dx游戏资源加密之XXTEA
在手机游戏当中,游戏的资源加密保护是一件很重要的事情. 我花了两天的时间整理了自己在游戏当中的资源加密问题,实现了跨平台的资源流加密,这个都是巨人的肩膀之上的. 大概的思路是这样的,游戏资源通过XXT ...
- Web Api 控制器
Web Api 控制器 文档目录 本节内容: 简介 AbpApiController 基类 本地化 其它 过滤 审计日志 授权 防伪造过滤 工作单元 结果包装和异常处理 结果缓存 验证 模块绑定器 简 ...
- mybatis显示sql语句 log4j.properties配置文件
log4j.properties配置如下: 将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句,方便调试: ### 设置Logger输出级别和输出目的地 # ...
- 分布式日志收集系统--Chukwa
1. 安装部署 1.1 环境要求 1.使用的JDK的版本必须是1.6或者更高版本,本实例中使用的是JDK1.6 2.使用的hadoop的版本必须是Hadoop0.20.205.1及以上版本,本实例中使 ...
- Delphi与Qt在Windows下使用共享内存进程间通信
Delphi部分 type TGuardInfo=record Lock: Integer; end; PGuardInfo = ^TGuardInfo; TGuardShareMem=c ...
- PAT-乙级-1021. 个位数统计 (15)
1021. 个位数统计 (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个k位整数N = dk-1 ...
- Flume学习——Flume中事务的定义
首先要搞清楚的问题是:Flume中的事务用来干嘛? Flume中的事务用来保证消息的可靠传递. 当使用继承自BasicChannelSemantics的Channel时,Flume强制在操作Chann ...