2

我必须将一些 Spark python 脚本作为 Oozie 工作流运行,我已经使用 Spark 在本地测试了这些脚本,但是当我将它们提交给 Oozie 时,我无法弄清楚为什么它不起作用。我正在使用 Cloudera VM,并且正在使用 Hue 仪表板管理 Oozie。以下是 spark 操作的工作流配置:

Spark Master: local[*]
Mode: client
App name: myApp
Jars/py files: hdfs://localhost:8120/user/cloudera/example.py
Main class: org.apache.spark

我还尝试运行一个简单的示例,它只打印一些东西,但是我提交 Oozie 的每个脚本都会给我这个输出:

>>> Invoking Spark class now >>>

Intercepting System.exit(1)

<<< Invocation of Main class completed <<<

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SparkMain], exit code [1]

Oozie Launcher failed, finishing Hadoop job gracefully

Oozie Launcher, uploading action data to HDFS sequence file: hdfs://quickstart.cloudera:8020/user/cloudera/oozie-oozi/0000005-161228161942928-oozie-oozi-W/spark-cc87--spark/action-data.seq

Oozie Launcher ends

[编辑]

我发现工作流只有在我设置 spark master: yarn-cluster 时才会启动,但即使在这种模式下,它也会启动保持在 95% 完成的地图上的纱线容器,而 spark 应用程序仍处于 ACCEPTED 状态。我正在尝试更改 Yarn 内存参数以允许 Spark 操作启动。粗壮的只是打印心跳

[解决了]

oozie 工作流仅在 py 文件是本地文件时启动,并且在 hue 创建工作流文件夹后手动插入到 lib 文件夹中。我认为最好的解决方案仍然是编写带有 spark-submit 的 shell 脚本

4

2 回答 2

0

您应该查看 spark 历史记录(在色相中,右上角选项中有一个工作历史选项卡,单击该选项卡,将为您提供历史记录 url)。完成后,您可以检查 EXECUTORS 选项卡并单击 stdout。您可以在那里看到主要错误。OOzie 日志总是不那么可读。

于 2016-12-30T09:20:07.240 回答
0

您显示的错误来自您的 oozie 作业的标准输出文件。您可以检查一次 stderr 文件并在此处发布您的输出。这可能有更多与您的问题相关的线索。

您可以使用 oozie Web 控制台来跟踪 oozie 作业日志。

于 2016-12-29T10:28:27.707 回答