Hadoop 传递JVM选项以指向Oozie工作流中Pig操作中的log4j.properties文件

Hadoop 传递JVM选项以指向Oozie工作流中Pig操作中的log4j.properties文件,hadoop,log4j,apache-pig,oozie,Hadoop,Log4j,Apache Pig,Oozie,在我的Oozie工作流中,有一个pig操作。 运行时,它正在CDH中查找log4j.properties文件,因为我没有在JAR中提供该文件。 现在,我有了log4j.properties文件,我只需要在Pig操作中将其作为JVM选项传递。 有没有办法做到这一点?在Oozie工作流中,无法将自定义log4j属性文件传递给Pig操作 java文件不允许以下参数作为参数传递 static { DISALLOWED_PIG_OPTIONS.add("-4"); DISALLOWED_P

在我的Oozie工作流中,有一个pig操作。
运行时,它正在CDH中查找log4j.properties文件,因为我没有在JAR中提供该文件。
现在,我有了log4j.properties文件,我只需要在Pig操作中将其作为JVM选项传递。

有没有办法做到这一点?

在Oozie工作流中,无法将自定义log4j属性文件传递给Pig操作

java文件不允许以下参数作为参数传递

static {
    DISALLOWED_PIG_OPTIONS.add("-4");
    DISALLOWED_PIG_OPTIONS.add("-log4jconf");
    DISALLOWED_PIG_OPTIONS.add("-e");
    DISALLOWED_PIG_OPTIONS.add("-execute");
    DISALLOWED_PIG_OPTIONS.add("-f");
    DISALLOWED_PIG_OPTIONS.add("-file");
    DISALLOWED_PIG_OPTIONS.add("-l");
    DISALLOWED_PIG_OPTIONS.add("-logfile");
    DISALLOWED_PIG_OPTIONS.add("-r");
    DISALLOWED_PIG_OPTIONS.add("-dryrun");
    DISALLOWED_PIG_OPTIONS.add("-P");
    DISALLOWED_PIG_OPTIONS.add("-propertyFile");
}
如果我们通过CLI运行pig脚本,而不是通过Oozie pig操作,这是可能的

参考:

piglog4j.properties文件是在应用程序运行时通过从容器中读取基本log4j.properties文件并将创建的文件放置在Hadoop作业appCache中创建的