首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ApacheHadoop2.8.0版本的HADOOP_HOME和PIG_CLASSPATH的适当值是多少?

ApacheHadoop2.8.0版本的HADOOP_HOME和PIG_CLASSPATH的适当值是多少?
EN

Stack Overflow用户
提问于 2017-05-11 20:24:21
回答 1查看 436关注 0票数 4

我在从Hadoop命令行执行PIG命令时遇到了问题。命令和错误堆栈如下

我的老师怀疑这是因为HADDOP_HOMEPIG_CLASSPATH是不正确的。我在HADOOP version 2.8.0上。

所以,最初我用HADOOP_HOME作为

代码语言:javascript
复制
HADOOP_HOME=<CELLAR_DIRECTORY>/hadoop/2.8.0/

然后,我切换了以下设置:

代码语言:javascript
复制
HADOOP_HOME=<CELLAR_DIRECTORY>/hadoop/2.8.0/libexec/etc/hadoop

PIG_CLASSPATH被定义为$HADOOP_HOME

我在猪上使用的命令:

代码语言:javascript
复制
A = LOAD '/Users/anarinsky/Downloads/loaddata1.txt';

B = MAPREDUCE '/Users/anarinsky/workspace/wordcount/target/wordcount-1.jar' STORE A INTO '/Users/anarinsky/Downloads/tempwrite2' LOAD  '/Users/anarinsky/Downloads/tempwrite2' AS (word:chararray, count:int) `com.systemskills.hadoop.wordcount.WordCountDriver /wordcountdata /Users/anarinsky/Downloads/pigoptdir`;

猪堆痕迹

代码语言:javascript
复制
ERROR 2025: Expected leaf of reduce plan to always be POStore. Found PONative

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias B
    at org.apache.pig.PigServer.openIterator(PigServer.java:1019)
    at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:747)
    at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:376)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:231)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:206)
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66)
    at org.apache.pig.Main.run(Main.java:564)
    at org.apache.pig.Main.main(Main.java:176)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:234)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:148)
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store alias B
    at org.apache.pig.PigServer.storeEx(PigServer.java:1122)
    at org.apache.pig.PigServer.store(PigServer.java:1081)
    at org.apache.pig.PigServer.openIterator(PigServer.java:994)
    ... 13 more
Caused by: org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompilerException: ERROR 2025: Expected leaf of reduce plan to always be POStore. Found PONative
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler.compile(MRCompiler.java:321)
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.compile(MapReduceLauncher.java:629)
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:152)
    at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:308)
    at org.apache.pig.PigServer.launchPlan(PigServer.java:1474)
    at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1459)
    at org.apache.pig.PigServer.storeEx(PigServer.java:1118)
    ... 15 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 08:13:12

亚历克斯!不幸的是,它与Pig路径无关(在我配置的hadoop集群上尝试过),结果是相同的。您所得到的错误指的是物理计划编译器在编译方法中有一个错误。因此,为了使你的尝试工作,你有两种可能性

  1. 使用hadoop运行本机MR job,并在它完成处理后,在pig中得到结果
  2. 编辑猪的源代码,并编译自己的版本。您需要编辑org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler#compile方法并替换 对于(PhysicalOperator op : leaf ){ if (!(op instanceof POStore)) { int errCode =2025年;String msg =“预期的叶的缩减计划”为“+”总是POStore。

使用

代码语言:javascript
复制
    for (PhysicalOperator op : leaves) {
        if (!(op instanceof POStore) && !(op instanceof PONative)) {
            int errCode = 2025;
            String msg = "Expected leaf of reduce plan to " +
                "always be POStore. Found " + op.getClass().getSimpleName();
            throw new MRCompilerException(msg, errCode, PigException.BUG);
        }
    }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43924904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档