Oozie pig action 更改工作 jar 的番石榴依赖项
Posted
技术标签:
【中文标题】Oozie pig action 更改工作 jar 的番石榴依赖项【英文标题】:Oozie pig action change guava dependency for job jar 【发布时间】:2014-08-06 23:32:06 【问题描述】:如何配置 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
作为 pig 操作的配置设置的一部分。
<action name="my_action">
<pig>
<configuration>
<property>
<name>mapreduce.job.user.classpath.first</name>
<value>true</value>
</property>
但它们似乎都不起作用。 问题是猪(不知何故)依赖于番石榴11,而我的工作依赖于番石榴13。我想首先在类路径中推送我的工作罐子。 编辑:我认为依赖 guava11 是 oozie
不能让它工作吗?任何指针?
添加更多信息: 浏览日志后,我看到
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 !
【问题讨论】:
【参考方案1】:它不是为 mapreduce 作业本身,而是为您启动 mapreduce 作业的 oozie 启动器。所以你应该改用下面的。
<property>
<name>oozie.launcher.mapreduce.job.user.classpath.first</name>
<value>true</value>
</property>
【讨论】:
【参考方案2】:以下设置应该可以解决您的问题。
<property>
<name>mapreduce.job.classloader</name>
<value>true</value>
</property>
【讨论】:
【参考方案3】:用于 oozie/猪/蜂巢
<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>
【讨论】:
以上是关于Oozie pig action 更改工作 jar 的番石榴依赖项的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pig、Hive 和 unix 的 Oozie 工作流程
在 Cloudera Hue 中为 Oozie(调用 PIG 脚本)配置正确的端口