Jupyter + EMR + Spark - 从本地机器上的 Jupyter notebook 连接到 EMR 集群
Posted
技术标签:
【中文标题】Jupyter + EMR + Spark - 从本地机器上的 Jupyter notebook 连接到 EMR 集群【英文标题】:Jupyter + EMR + Spark - Connect to EMR cluster from Jupyter notebook on local machine 【发布时间】:2017-06-28 11:12:56 【问题描述】:我是 PySpark 和 EMR 的新手。 我正在尝试通过 Jupyter notebook 访问在 EMR 集群上运行的 Spark,但遇到了错误。
我正在使用以下代码生成 SparkSession:
spark = SparkSession.builder \
.master("local[*]")\
.appName("Carbon - SingleWell parallelization on Spark")\
.getOrCreate()
尝试如下访问远程集群,但报错:
spark = SparkSession.builder \
.master("spark://<remote-emr-ec2-hostname>:7077")\
.appName("Carbon - SingleWell parallelization on Spark")\
.getOrCreate()
错误:
Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: java.lang.NullPointerException
at org.apache.spark.SparkContext.<init>(SparkContext.scala:567)
at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:58)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
任何解决此问题的帮助将不胜感激。
【问题讨论】:
【参考方案1】:EMR 集群为您配置了 Jupyter 和 JupyterHub since EMR version 5.14.0。
很可能,通过一些额外的引导操作tune those provisioned services up 比连接本地进程与 EMR 主节点对话更容易。
【讨论】:
以上是关于Jupyter + EMR + Spark - 从本地机器上的 Jupyter notebook 连接到 EMR 集群的主要内容,如果未能解决你的问题,请参考以下文章
无法访问 EMR 集群 jupyter notebook 中的 pyspark
如何将变量从 EMR 集群传递到 Jupyter Notebook %%local 实例?
如何在 jupyter notebook 中将 spark 数据帧写入 avro 文件格式?
从 EMR spark 连接到 EMR presto - 连接失败