• Reduce对Pig作业性能的影响


      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

  • 相关阅读:
    虚函数中的变量作用域问题
    C++技能重拾2
    C++技能重拾
    位运算取第一个非0的位 r & (~(r-1))
    ThoughtWorks微服务架构交流心得
    字符串匹配的sunday算法
    Codeforces Round #270(利用prim算法)
    HDFS建筑与shell操作
    Spark SQL 源代码分析系列
    HDU 4686 Arc of Dream(递归矩阵加速)
  • 原文地址:https://www.cnblogs.com/new0801/p/6176149.html
Copyright © 2020-2023  润新知