med*_*med 6 ipython apache-spark kubernetes google-kubernetes-engine google-cloud-dataproc
我不知道这是否已在SO中得到解答,但我无法找到解决问题的方法.
我有一个在Google容器引擎中的docker容器中运行的IPython笔记本,容器基于此图像jupyter/all-spark-notebook
我还有一个用谷歌云数据流创建的火花群
Spark master和笔记本在不同的VM中运行,但在同一区域和区域中运行.
我的问题是我正在尝试从IPython笔记本连接到spark master,但没有成功.我在我的python笔记本中使用了这段代码
import pyspark
conf = pyspark.SparkConf()
conf.setMaster("spark://<spark-master-ip or spark-master-hostname>:7077")
Run Code Online (Sandbox Code Playgroud)
我刚开始使用spark,所以我确定我遗漏了一些东西(身份验证,安全......),
我在那里找到的是通过SSH隧道连接本地浏览器
有人已经做过这种设置吗?
先感谢您
Dataproc 在YARN上运行Spark,因此您需要将master设置为'yarn-client'.您还需要在YARN ResourceManager上指向Spark,这需要一个记录不足的SparkConf - > Hadoop配置转换.您还必须告诉Spark有关群集上的HDFS,因此它可以为YARN分配资源.如果您将用于Hadoop的Google云端存储连接器添加到您的映像中,则可以使用Google云端存储而不是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)
Run Code Online (Sandbox Code Playgroud)
对于一个更永久配置,你可以烤到这些本地文件"的核心-site.xml中"所描述这里,放置在本地目录,并设置HADOOP_CONF_DIR在您的环境中的目录.
还值得注意的是,虽然位于同一区域对于性能很重要,但它位于同一网络中,允许TCP在该网络中允许VM进行通信的内部IP地址之间.如果您正在使用default网络,那么default-allow-internal 防火墙规则应该足够了.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
3396 次 |
| 最近记录: |