gpt4 book ai didi

apache-spark - 连接 IPython notebook 以触发在不同机器上运行的 master

转载 作者:行者123 更新时间:2023-12-04 14:56:46 25 4
gpt4 key购买 nike

我不知道这是否已经在 SO 中得到了回答,但我找不到解决我的问题的方法。

我有一个在 Google Container Engine 的 docker 容器中运行的 IPython 笔记本,该容器基于此图像 jupyter/all-spark-notebook

我还有一个用 google cloud dataproc 创建的 Spark 簇

Spark master 和 notebook 在 中运行不同的虚拟机 但在 同区域和区域 .

我的问题是我试图从 IPython 笔记本连接到 spark master,但没有成功。我在我的 python 笔记本中使用了这段代码

import pyspark
conf = pyspark.SparkConf()
conf.setMaster("spark://<spark-master-ip or spark-master-hostname>:7077")

我刚开始使用 spark,所以我确定我遗漏了一些东西(身份验证、安全性......),

我在那里发现的是通过 SSH tunnel 连接本地浏览器

有人已经做过这种设置了吗?

先感谢您

最佳答案

Dataproc 运行 Spark on YARN ,因此您需要将 master 设置为 'yarn-client'。您还需要将 Spark 指向 YARN ResourceManager,这需要文档不足的 SparkConf -> Hadoop 配置转换。您还必须将集群上的 HDFS 告诉 Spark,以便它可以为 YARN 暂存资源。如果您烘焙 The Google Cloud Storage Connector for Hadoop,您可以使用 Google Cloud Storage 而不是 HDFS进入你的形象。

尝试:

import pyspark
conf = pyspark.SparkConf()
conf.setMaster('yarn-client')
conf.setAppName('My Jupyter Notebook')

# 'spark.hadoop.foo.bar' sets key 'foo.bar' in the Hadoop Configuaration.
conf.set('spark.hadoop.yarn.resourcemanager.address', '<spark-master-hostname>')
conf.set('spark.hadoop.fs.default.name', 'hdfs://<spark-master-hostname>/')

sc = pyspark.SparkContext(conf=conf)

对于更永久的配置,您可以将它们烘焙到本地文件“core-site.xml”中,如 here 所述。 ,将其放在本地目录中,并将 HADOOP_CONF_DIR 设置为您环境中的该目录。

还值得注意的是,虽然在同一个 Zone 中对性能很重要,但它在同一个 Network 中。并允许该网络中的内部 IP 地址之间使用 TCP,从而允许您的 VM 进行通信。如果您使用的是 default网络,然后 default-allow-internal firewall rule ,应该够了。

希望有帮助。

关于apache-spark - 连接 IPython notebook 以触发在不同机器上运行的 master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35622133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com