hadoop - 如何在 oozie 中将 pig 选项作为参数传递?

标签 hadoop apache-pig oozie oozie-coordinator

为了执行我的 pig 脚本,我需要关闭优化器。在命令行和脚本中使用以下命令可以正常工作。

 pig -t ColumnMapKeyPrune population.pig

如何在oozie中传递这个选项?

我试过作为参数传递。

<action>
<pig>
    <job-tracker>${jobTracker}</job-tracker>
    <name-node>${nameNode}</name-node>                      
    <script>Population.pig</script> 
    <argument>-t</argument>
    <argument>ColumnMapKeyPrune</argument>
    <param>piggybankJar=${piggybankJar}</param>
    <param>datafuJar=${datafuJar}</param>
    <param>inputPath=${inputPath}</param>
    <param>outputPath=${outputPath}</param>
</pig>
</action>

收到以下错误:

E0701: XML schema error, cvc-complex-type.2.4.a: Invalid content was found starting with element 'param'. One of '{"uri:oozie:workflow:0.4":argument, "uri:oozie:workflow:0.4":file, "uri:oozie:workflow:0.4":archive}' is expected.

尝试使用参数,但没有成功

 <action>
 <pig>
    <job-tracker>${jobTracker}</job-tracker>
    <name-node>${nameNode}</name-node>                      
    <script>Population.pig</script> 
    <param>-t</param>
    <param>ColumnMapKeyPrune</param>
    <param>piggybankJar=${piggybankJar}</param>
    <param>datafuJar=${datafuJar}</param>
    <param>inputPath=${inputPath}</param>
    <param>outputPath=${outputPath}</param>
</pig>
</action>

对于 pig oozie 操作只允许参数、存档、文件和参数标签。如何传递这个 optimizer_off 选项?

最佳答案

在你的 pig 脚本中设置下面提到的属性并尝试一次。

set pig.optimizer.rules.disabled 'ColumnMapKeyPrune';

引用,请通过下面提到的链接

[ http://pig.apache.org/docs/r0.14.0/perf.html#optimization-rules]

关于hadoop - 如何在 oozie 中将 pig 选项作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32867998/

相关文章:

hadoop - 如何转储数据?

java - 在 java distcp 中使用 -update 选项

python - 安排 pyspark 笔记本

hadoop - Hadoop中的Oozie pig 工作流程2.2 pig 0.12.1 oozie 4.1.0

hadoop - 启动Oozie工作流程时遇到的问题

hadoop - HIVE 插入到动态分区表永远运行/挂起

hadoop - 如何在pig 0.8中处理多分隔 rune 件

hadoop - 如何使用 pig 或 hadoop fs 选项重命名具有特定扩展名的文件?

hadoop - 如何使用PIG处理图像文件

shell - 无法使用 oozie 运行 shell 脚本