如何在远程 Spark 集群上运行本地 Python 脚本?
Posted
技术标签:
【中文标题】如何在远程 Spark 集群上运行本地 Python 脚本?【英文标题】:How do I run a local Python script on a remote Spark cluster? 【发布时间】:2018-11-02 16:17:16 【问题描述】:我在 Jupyter 笔记本中运行了一个本地 Python 脚本,该脚本在我的机器上运行的本地 Spark 集群上运行作业:
sc = pyspark.SparkContext(appName="test")
sqlCtx = pyspark.SQLContext(sc)
如何将其更改为连接字符串,以便在 AWS 中的 EMR Spark 集群上运行作业?
这可能吗,还是我必须在通过 SSH 连接到远程集群时使用 spark-submit
功能?
【问题讨论】:
如果你可以在远程集群中访问spark-shell
,那是可能的,或者你需要去spark-submit
。
【参考方案1】:
你必须使用spark-submit
。我不相信您可以将本地脚本连接到 EMR 集群,因为您的主节点需要是本地的。
这里有一个类似的帖子可能会有所帮助:How to connect to Spark EMR from the locally running Spark Shell 但是,如果您希望重复使用代码,则将 Spark 作业添加为 EMR 步骤只是提交代码的另一种方式。
如果您的目标是在 EMR 集群上使用 Jupyter notebook,请参阅此处。 https://aws.amazon.com/blogs/big-data/running-jupyter-notebook-and-jupyterhub-on-amazon-emr/
【讨论】:
【参考方案2】:如果您想使用 Jupyter 笔记本并希望在远程 EMR 集群上运行您的代码,您也可以使用 EMR 笔记本。
更多信息在这里:https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks.html
【讨论】:
以上是关于如何在远程 Spark 集群上运行本地 Python 脚本?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 IntelliJ IDEA 向远程 Spark 集群提交代码
Spark 本地连接远程服务器上带有kerberos认证的Hive
关于在本地idea当中提交spark代码到远程的错误总结(第一篇)
多节点火花集群上的 spark-shell 无法在远程工作节点上旋转执行程序
在远程集群上从 Spark 运行 hive 查询时,客户端无法通过以下方式进行身份验证:[TOKEN, KERBEROS]