Oozie猪的行为改变了工作罐的番石榴依赖性

时间:2014-08-06 23:32:06

标签: hadoop classpath apache-pig oozie

如何配置oozie pig动作以优先使用user.classpath? 猪版0.10.0-cdh4.2.1

尝试了所有

mapreduce.task.classpath.user.precedence
mapreduce.task.classpath.first
mapreduce.job.user.classpath.first
mapreduce.user.classpath.first

作为猪行动配置设置的一部分。

<action name="my_action">
    <pig>
        <configuration>
             <property>
                  <name>mapreduce.job.user.classpath.first</name>
                   <value>true</value>
              </property>

但它们似乎都不起作用。 问题是猪(不知何故)依赖于番石榴11而我的工作依赖于番石榴13.我想先在类路径中推动我的工作罐。 编辑:我认为这是oozie取决于guava11

无法让这个工作?任何指针?

添加更多信息: 经过日志后,我看到了

mapred.job.classpath.files // has guava13 first in the classpath
mapred.cachefiles // has guava13 first in the classpath

但是当org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher启动作业时;那么Zookeeper的JobControl日志首先在类路径中有guava 11

[JobControl] INFO  org.apache.zookeeper.ZooKeeper  - Client environment:java.class.path= // has guava 11 first in the classpath !

3 个答案:

答案 0 :(得分:1)

不是mapreduce工作本身,而是oozie启动器,它为你启动mapreduce工作。所以你应该使用以下一个。

<property> <name>oozie.launcher.mapreduce.job.user.classpath.first</name> <value>true</value> </property>

答案 1 :(得分:0)

以下设置可以解决您的问题。

            <property>
                    <name>mapreduce.job.classloader</name>
                    <value>true</value>
            </property>

答案 2 :(得分:0)

for oozie / pig / hive

<property>
    <name>oozie.launcher.mapreduce.task.classpath.user.precedence</name>
    <value>true</value>
</property>
<property>
    <name>mapreduce.task.classpath.user.precedence</name>
    <value>true</value>
</property>