问题标签 [oozie-workflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - Oozie Spark 动作失败
我有一个简单的 spark 应用程序,它正在读取 csv 数据,然后写入 avro。这个应用程序在作为 spark-submit 命令行提交时工作正常,但在尝试从 oozie spark action 执行时失败并出现以下错误。错误信息:
Oozie详细信息:
工作流.xml
在作业跟踪器中,MAP Reduce 作业与调用 Spark Action 一样成功,但在那里失败了,但总体上 Oozie 失败了。
使用的版本
我还检查了 hdfs 中的 oozie 共享库:/user/oozie/share/lib/lib_20180517102659/spark,它包含 lz4-1.3.0.jar,其中包含错误中提到的 net.jpountz.lz4.LZ4BlockInputStream 类。
任何帮助都将不胜感激,因为我为此苦苦挣扎了很长时间。
非常感谢
oozie - 是否可以在不指定 inputDir 和 outputDir 的情况下运行 Oozie Spark Action
我有一个 PySpark 脚本,它在脚本本身中指定了输入和输出位置。在我的工作流 XML 中,我不需要也不想要一个inputDir
and 。outputDir
通过 Oozie 运行我的 PySpark 脚本时,我收到此错误消息。
基于https://github.com/apache/oozie/blob/master/core/src/main/java/org/apache/oozie/util/ParameterVerifier.java,我的第一个警告是由于我没有一个“输入目录”
我可以解决这个问题吗?
更新——我的 XML 结构
oozie - 过滤 oozie 中的组
从 Oozie(4.2.0,来自 hdp2.6)我希望能够获得属于某个组的作业列表:
oozie jobs -filter group=export
但是这个过滤器永远不会匹配。我用一些变量设置了工作(在试验时):
- 多变的
oozie.job.acl
- 多变的
group.name
- hadoop 属性
oozie.job.acl
我可以oozie jobs
在列中看到 ( ) 组名Group
(我为 oozie.job.acl 提供的组名),但我似乎无法在过滤器中使用它。
有没有我错过的技巧,或者只是不可能?
hadoop - 并行运行 oozie 操作的任何其他选项
目前,我的 oozie 工作流程中有 6 个操作,如下所示。
MainJob1 完成所有第一个、第二个和第三个作业后应该并行运行。在 MainJob2 完成后,只有第二个和第三个作业应该并行运行。
有没有可能解决上述工作流执行方式?
java - 如何为 oozie 工作流中的不同操作指定不同的用户库路径
如何为 oozie 工作流中的不同操作指定不同的用户库路径
我有一个 spark 动作和一个 java 动作
如何为两个操作指定不同的库路径。我在这两个装配罐中有冲突的罐子。
hive - Oozie Launcher 失败,无法运行程序
我正在尝试使用非常基本的脚本运行 oozie 工作流程。脚本本身非常简单,它需要一个 csv 文件并将其加载到 impala 中的一个表中。我的工作流程是这样的。
但是,当我运行它时,我似乎总是收到此错误,我不确定它为什么无法运行该程序。目录/文件都指向正确的位置。
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], main() threw exception, Cannot run program "Test.sh" (in directory "/data13/yarn/nm/usercache/user/appcache/application"): error=2, No such file or directory
java.io.IOException: Cannot run program "Test.sh" (in directory "/data13/yarn/nm/usercache/user/appcache/application"): error=2, No such file or directory
oozie - Oozie fork 多次调用相同的操作
我正在尝试使用 fork 并行运行相同 oozie 操作的多个实例。在尝试这样做时,我适时收到错误说明
"E0744" 一个分叉不允许有多个过渡到同一个节点
我还查看了 oozie 代码库(LiteWorkflowAppParser),发现 oozie 确实不允许在 fork 中多次运行调用相同的操作,因为它对此进行了验证。现在我禁用了验证oozie.wf.validate.ForkJoin=false
并再次运行工作流程。这一次,工作流运行良好,但只有一个动作实例在运行。对我来说,虽然我禁用了验证,但下面的 oozie 只允许运行独特的操作,并且跳过了重复的操作。现在我的问题是,如何实现并行运行多个 oozie 动作?
我的工作流程是这样的:
附加细节:
通过上述配置,我看到工作流performAction
在过渡到joinForks
阶段完成后卡住了。看起来它joinForks
正在等待剩余的操作向它报告,以便它可以结束。但问题是,剩余的操作从未启动,导致工作流无限期地等待。
在此之后,我只是复制performAction
到三个不同的 actionperformAction1
中performAction2
,performAction3
并在 forks 中使用它们。现在工作流程正在完成,因为joinForks
所有分支都调用了它。但是,我真的希望我不必以不同的名称一次又一次地复制相同的操作。任何帮助表示赞赏。
谢谢
shell - 如何将 shell 脚本中的值传递给 oozie 工作流的 job.properties
当触发执行某些命令然后提交一个 oozie 工作流时,我有一个 shell 脚本。我的要求是将一个参数传递给 shell 脚本,它可以被调用的 oozie 工作流的 job.properties 文件使用。我怎样才能做到这一点?参考下面的示例代码,我希望将其替换为 oozie_job1 将使用的 job.properties。
sh test1.sh ... ... oozie_job1 ...
hadoop - 将可选属性从主 oozie 工作流传递到子工作流
我有一个 HDFS_file_path 或需要从 workflow-1 传递到 common_subworkflow 的属性。
我也有没有该属性或 HDFS_file_path 的工作流 2。但是 workflow-2 调用 common_subworkflow。
在 common_subworkflow 中,我使用 ${HDFS_file_path} 获取属性值。
它在工作流 1 调用 common_subworkflow 时工作正常,但在工作流 2 调用 common_subworkflow 时失败,因为 HDFS_file_path 在工作流 2 中不存在。
有没有办法
- 读取动态属性(如果存在),或
- 如果变量不存在,则设置一些默认值(null 或空)
hadoop - 无法在 oozie 中运行 shell(错误=2,没有这样的文件或目录)
我在 ambari-views ui 中为我的工作流程中的 oozie 和 sample.sh 文件创建工作流程,运行后出现错误。例如,当我将 shell 主体更改为简单命令时,echo 1
没有出现此错误,请告诉我
我的工作流程的 xml