调度 pyspark 笔记本
Posted
技术标签:
【中文标题】调度 pyspark 笔记本【英文标题】:scheduling pyspark notebooks 【发布时间】:2016-06-17 11:53:12 【问题描述】:我有一个 ipython 笔记本,其中包含集群上的一些 PySpark 代码。目前我们正在使用 oozie 通过 HUE 在 Hadoop 上运行这些笔记本。设置感觉不太理想,我们想知道是否有替代方案。
我们首先将.ipynb
文件转换成.py
文件,并移动到hdfs。除了这个文件,我们还创建了一个调用 python 文件的.sh
文件。内容类似:
#!/bin/sh
set -e
[ -r /usr/local/virtualenv/pyspark/bin/activate ] &&
source /usr/local/virtualenv/pyspark/bin/activate
spark-submit --master yarn-client --<setting> <setting_val> <filename>.py
接下来我们让 Oozie 指向这个 .sh
文件。这种流程感觉有点麻烦,而且 Oozie 并没有让我们深入了解发生故障时出现的问题。我们确实喜欢 Oozie 知道如何根据您的配置并行或串行运行任务。
有没有更好、更流畅的方式来安排 pyspark 笔记本?
【问题讨论】:
【参考方案1】:OOZIE-2482 最近被添加到 Oozie 的 master 中,这应该会使运行 PySpark 作业更容易。不幸的是,它还没有发布。
可以将 Spark Action 添加到您的工作流程中,应在标签中指定 py 文件。 py 文件和 Spark 版本的 pyspark.zip 和 py4j--src.zip 必须添加到 workflow.xml 旁边的 lib/ 文件夹中,它应该可以工作。
【讨论】:
以上是关于调度 pyspark 笔记本的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark 连接到 ipython 笔记本中的 Postgres 数据库
将其中一个用作模块时如何在不同的笔记本中使用“sqlContext”(Pyspark)
如何使用 Python / Pyspark 在 Databricks 笔记本中合并数据帧