将pyspark连接到远程集群
PysparkGatewa的Python项目详细描述
Pypsark网关是一个库,可以无缝连接到远程Spark集群。
快速启动
在要连接到的远程Spark群集和本地计算机上安装PysparkGateway包。
pip install pysparkgateway
启动集群上的pyspark网关服务器。
pyspark-gateway start
pyspark网关通过3个端口进行通信,25000,25001,25002。目前,客户机只支持连接到本地主机上的这些端口,因此您需要对它们进行隧道。
ssh myuser@foo.bar.cluster.com -L 25000:localhost:25000 -L 25001:localhost:25001 -L 25002:localhost:25002
现在你可以连接了。要记住的主要事情是pyspark网关导入需要在任何其他导入之前到达。pypsark网关需要修补您的本地pyspark才能正常工作。
本地python连接到远程集群的方式是通过自定义py4j网关。pyspark网关将自动创建和配置,您只需将其传递到SparkContext选项。
另外,要使所有pyspark函数都能工作,spark.io.encryption.enabled需要设置为true。
# This import comes first! from pyspark_gateway import PysparkGateway pg = PysparkGateway() from pyspark import SparkContext, SparkConf conf = conf.set('spark.io.encryption.enabled', 'true') sc = SparkContext(gateway=pg.gateway, conf=conf)
现在,您有一个工作的spark上下文连接到远程集群。