如何在pig脚本中运行Mapreduce



我想了解如何从pig脚本中集成调用mapreduce作业。

我引用了链接https://wiki.apache.org/pig/NativeMapReduce

但我不确定如何做到这一点,因为它将如何理解这是我的映射器或减速器代码。这个解释不是很清楚。

如果有人能举例说明,那将是很大的帮助。

提前感谢欢呼:)

来自pig文档的示例

A = LOAD 'WordcountInput.txt';
B = MAPREDUCE 'wordcount.jar' STORE A INTO 'inputDir' LOAD 'outputDir' 
    AS (word:chararray, count: int) `org.myorg.WordCount inputDir outputDir`;

在上面的示例中,pig将A的输入数据存储到inputDir中,并从outputDir加载作业的输出数据。

此外,在HDFS中有一个名为wordcount.jar的jar,其中有一个名为org.myorg.WordCount的类,其中有一个主类,负责设置映射器和reducer,输入和输出等。

您也可以通过hadoop jar mymr.jar org.myorg.WordCount inputDir outputDir调用mapreduce作业

默认情况下,pig将提前执行map/reduce程序。然而hadoop自带默认的mapper/reducer实现;

当map reduce类没有被识别时,由Pig使用。

进一步Pig使用Hadoop的属性以及它的特定属性。尝试在pig脚本中设置以下属性,它也应该被pig选中。

SET mapred.mapper.class="<fully qualified classname for mapper>"
SET mapred.reducer.class="<fully qualified classname for reducer>"

同样可以使用-Dmapred.mapper.class选项设置。完整的列表在这里根据您的hadoop安装,这些属性也可以是:

mapreduce.map.class
mapreduce.reduce.class

仅供参考……

hadoop。Mapred已弃用。0.20.1之前的版本使用mapred。之后的版本使用mapreduce

此外,pig有自己的一组属性,可以使用命令pig -help properties

查看。
e.g. in my pig installation, below are the properties:
The following properties are supported:
    Logging:
        verbose=true|false; default is false. This property is the same as -v switch
        brief=true|false; default is false. This property is the same as -b switch
        debug=OFF|ERROR|WARN|INFO|DEBUG; default is INFO. This property is the same as -d switch
        aggregate.warning=true|false; default is true. If true, prints count of warnings
            of each type rather than logging each warning.
    Performance tuning:
        pig.cachedbag.memusage=<mem fraction>; default is 0.2 (20% of all memory).
            Note that this memory is shared across all large bags used by the application.
        pig.skewedjoin.reduce.memusagea=<mem fraction>; default is 0.3 (30% of all memory).
            Specifies the fraction of heap available for the reducer to perform the join.
        pig.exec.nocombiner=true|false; default is false.
            Only disable combiner as a temporary workaround for problems.
        opt.multiquery=true|false; multiquery is on by default.
            Only disable multiquery as a temporary workaround for problems.
        opt.fetch=true|false; fetch is on by default.
            Scripts containing Filter, Foreach, Limit, Stream, and Union can be dumped without MR jobs.
        pig.tmpfilecompression=true|false; compression is off by default.
            Determines whether output of intermediate jobs is compressed.
        pig.tmpfilecompression.codec=lzo|gzip; default is gzip.
            Used in conjunction with pig.tmpfilecompression. Defines compression type.
        pig.noSplitCombination=true|false. Split combination is on by default.
            Determines if multiple small files are combined into a single map.
        pig.exec.mapPartAgg=true|false. Default is false.
            Determines if partial aggregation is done within map phase,
            before records are sent to combiner.
        pig.exec.mapPartAgg.minReduction=<min aggregation factor>. Default is 10.
            If the in-map partial aggregation does not reduce the output num records
            by this factor, it gets disabled.
    Miscellaneous:
        exectype=mapreduce|local; default is mapreduce. This property is the same as -x switch
        pig.additional.jars.uris=<comma seperated list of jars>. Used in place of register command.
        udf.import.list=<comma seperated list of imports>. Used to avoid package names in UDF.
        stop.on.failure=true|false; default is false. Set to true to terminate on the first error.
        pig.datetime.default.tz=<UTC time offset>. e.g. +08:00. Default is the default timezone of the host.
            Determines the timezone used to handle datetime datatype and UDFs. Additionally, any Hadoop property can be specified.

最新更新