在我的oozie工作流中,有一个pig操作。在运行时,它正在cdh中查找log4j.properties文件,因为我的jars中没有提供该文件。现在,我随身携带了log4j.properties文件,只需要在pig操作中将其作为jvm选项传递。有什么办法吗?
niwlg2el1#
在oozie工作流中,无法将自定义log4j属性文件传递给pig操作。pigmain.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操作,这是可能的。参考文献:https://github.com/apache/oozie/blob/master/sharelib/pig/src/main/java/org/apache/oozie/action/hadoop/pigmain.javapiglog4j.properties文件是在应用程序运行时通过从容器中读取基本log4j.properties文件并将创建的文件放置在hadoop作业appcache中创建的。
1条答案
按热度按时间niwlg2el1#
在oozie工作流中,无法将自定义log4j属性文件传递给pig操作。
pigmain.java文件不允许以下参数作为参数传递。
如果我们通过cli运行pig脚本,而不是通过oozie pig操作,这是可能的。
参考文献:https://github.com/apache/oozie/blob/master/sharelib/pig/src/main/java/org/apache/oozie/action/hadoop/pigmain.java
piglog4j.properties文件是在应用程序运行时通过从容器中读取基本log4j.properties文件并将创建的文件放置在hadoop作业appcache中创建的。