OOzie 中 PySpark 作业的主类

Posted

技术标签:

【中文标题】OOzie 中 PySpark 作业的主类【英文标题】:Main Class for PySpark Jobs in OOzie 【发布时间】:2017-09-19 06:42:44 【问题描述】:

我创建了一个 pySpark 作业,它在通过 spark-submit 提交时工作得非常好。现在,当我尝试通过 Oozie 失败。我怀疑我输入的字段有问题。这些字段对于 Oozie 中的 Spark Action 是必需的。

Spark Master : local
Mode : client 
Main class : DO I need to enter anything here as its Python + Spark code (Pyspark)
Jars/py files : My py module

Log Stdout 如下

  =================================================================

  >>> Invoking Main class now >>>

  Fetching child yarn jobs
  tag id : oozie-653992fdf1609a2d4e19a863dff21a1
  Child yarn jobs are found -
  Spark Action Main class        : org.apache.spark.deploy.SparkSubmit

  Oozie Spark action configuration
  =================================================================

  --master
  local[*]
  --deploy-mode
  client
  --name
  POC1L
  --verbose
  /user/sachinkerala6174/pgm/poc1l.py

  =================================================================

  >>> Invoking Spark class now >>>

  python: can't open file '/user/sachinkerala6174/pgm/poc1l.py': [Errno 2] No such file or directory
  Intercepting System.exit(2)

  <<< Invocation of Main class completed <<<

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

  Oozie Launcher failed, finishing Hadoop job gracefully

  Oozie Launcher, uploading action data to HDFS sequence file: hdfs://ip-172-31-53-48.ec2.internal:8020/user/sachinkerala6174/oozie-oozi/0000509-170711051319609-oozie-oozi-W/spark-fea0--spark/action-data.seq

  Oozie Launcher ends

【问题讨论】:

【参考方案1】:

您无需在“主类”输入中添加任何内容。只需在 python 文件路径中添加 hdfs:// 前缀,并将 Master 更改为 yarn 并将 Mode 更改为 cluster (如果您的源代码在 HDFS 上,则必须这样做)。

【讨论】:

以上是关于OOzie 中 PySpark 作业的主类的主要内容,如果未能解决你的问题,请参考以下文章

Oozie shell 操作失败

Pyspark Phoenix 集成在 oozie 工作流程中失败

如何在 oozie 4.2.0 上运行火花动作(pyspark 脚本)?

Hadoop MapReduce 1.x 工作原理

spark-任务提交多个jar包问题(Oozie调度)

Hadoop MapReduce 1.x 工作原理