在启动 Google DataProc 集群以与 Jupyter 笔记本一起使用时,如何包含其他 jar?

Posted

技术标签:

【中文标题】在启动 Google DataProc 集群以与 Jupyter 笔记本一起使用时,如何包含其他 jar?【英文标题】:How can I include additional jars when starting a Google DataProc cluster to use with Jupyter notebooks? 【发布时间】:2018-02-16 16:23:35 【问题描述】:

我正在按照说明使用初始化脚本启动 Google DataProc 集群来启动 jupyter notebook。

https://cloud.google.com/blog/big-data/2017/02/google-cloud-platform-for-data-scientists-using-jupyter-notebooks-with-apache-spark-on-google-cloud

如何在 Jupyter 笔记本(尤其是 pyspark)中生成的 SparkContext 中包含额外的 JAR 文件(例如 spark-xml)?

【问题讨论】:

【参考方案1】:

答案取决于您要加载的 jar。例如,您可以在创建集群时将 spark-xml 与以下内容一起使用:

$ gcloud dataproc clusters create [cluster-name] \
    --zone [zone] \
    --initialization-actions \
       gs://dataproc-initialization-actions/jupyter/jupyter.sh \ 
    --properties spark:spark.jars.packages=com.databricks:spark-xml_2.11:0.4.1

要指定多个 Maven 坐标,您需要将 gcloud 字典分隔符从 ',' 交换为其他字符(因为我们需要使用它来分隔要安装的包):

$ gcloud dataproc clusters create [cluster-name] \
    --zone [zone] \
    --initialization-actions \
       gs://dataproc-initialization-actions/jupyter/jupyter.sh \ 
    --properties=^#^spark:spark.jars.packages=artifact1,artifact2,artifact3

转义字符如何更改的详细信息可以在 gcloud 中找到:

$ gcloud help topic escaping

【讨论】:

有没有办法在创建集群函数中初始化并放置jar文件路径:cloud.google.com/dataproc/docs/tutorials/python-library-example

以上是关于在启动 Google DataProc 集群以与 Jupyter 笔记本一起使用时,如何包含其他 jar?的主要内容,如果未能解决你的问题,请参考以下文章

暂停 Dataproc 集群 - Google 计算引擎

来自 DataProc 集群的 Google Cloud Sdk

如何在 Google Dataproc 集群中安装 python 包

在 google-dataproc 的 Spark 集群中的 pyspark 作业中使用外部库

所有作业完成后自动关闭 Google Dataproc 集群

如何在 dataproc 集群上重新启动 hadoop 服务