pycharm利用pyspark远程连接spark集群的实现

 更新时间:2021年05月17日 14:31:22   作者:Great1414  
由于工作需要,利用spark完成机器学习。因此需要对spark集群进行操作。所以利用pycharm和pyspark远程连接spark集群。感兴趣的可以了解一下

0 背景

由于工作需要,利用spark完成机器学习。因此需要对spark集群进行操作。所以利用pycharm和pyspark远程连接spark集群。这里记录下遇到的问题及方法。
主要是参照下面的文献完成相应的内容,但是具体问题要具体分析。

1 方法

1.1 软件配置
spark2.3.3, hadoop2.6, python3
1.2 spark配置
Spark集群的每个节点的Python版本必须保持一致。在每个节点的$SPARK_HOME/conf/spark-env.sh中添加一行:具体看你的安装目录。

export PYSPARK_PYTHON=/home/hadoop/anaconda2/bin/python3

此步骤就是将python添加到spark的配置中。
此时,在服务器命令行输入pyspark时,可以正常进入spark。
1.3本地配置
1.3.1 首先将spark2.3.3从服务器拷贝到本地。
注意: 由于我集群安装的是spark-2.3.3-bin-without-hadoop。但是拷贝到本地后,总是报错Java gateway process… 。同时我将hadoop2.6,的包也从服务器拷贝到本地加载到程序中,同样报错。
最后,直接从spark的官网中,下载了spark-2.3.3-bin-hadoop2.6,这回就可以了。
pyspark的版本与spark的版本最好对应。比如pyspark2.3.3,spark2.3.3

# os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-without-hadoop"(无用)
os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-hadoop2.6"(有用)
# os.environ["HADOOP_HOME"] = r"F:\big_data\hadoop-2.6.5"(无用)
# os.environ['JAVA_HOME'] = r"F:\Java\jdk1.8.0_144"(无用)

1.3.2
C:\Windows\System32….\hosts(Windows机器)中加入Spark集群Master节点的IP与主机名的映射。需要管理员权限修改。

在这里插入图片描述

其中的spark_cluster就是对于Master的IP的映射名。(直接写IP一样可以,映射名是为了方便)
1.3.3
添加刚刚下载解压好的spark的python目录到pycharm的project structure

在这里插入图片描述

1.3.4
新建py文件,编辑Edit Configurations添加SPARK_HOME变量

在这里插入图片描述

注意: 在实际中,这个不添加好像也可以。只需要在程序中加载了spark_home.比如os.envion(…spark…)

2 测试

import os
from pyspark import SparkContext
from pyspark import SparkConf
# os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-without-hadoop"
os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-hadoop2.6"
# os.environ["HADOOP_HOME"] = r"F:\big_data\hadoop-2.6.5"
# os.environ['JAVA_HOME'] = r"F:\Java\jdk1.8.0_144"
print(0)
conf = SparkConf().setMaster("spark://spark_cluster:7077").setAppName("test")
sc = SparkContext(conf=conf)
print(1)
logData = sc.textFile("file:///opt/spark-2.3.3-bin-without-hadoop/README.md").cache()
print(2)
print("num of a",logData)
sc.stop()

在这里插入图片描述

3 参考

PyCharm+PySpark远程调试的环境配置的方法
Spark下:Java gateway process exited before sending the driver its port number等问题

估计每个人遇到的问题不一样,但是大同小异,具体问题具体分析。

到此这篇关于pycharm利用pyspark远程连接spark集群的实现的文章就介绍到这了,更多相关pyspark远程连接spark集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 取numpy数组的某几行某几列方法

    取numpy数组的某几行某几列方法

    下面小编就为大家分享一篇取numpy数组的某几行某几列方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python的Import机制的模块与包深入理解

    Python的Import机制的模块与包深入理解

    深入理解Python的import机制有助于更好地组织代码、提高代码复用性,本文将深入研究Python的Import机制,包括模块的导入过程、命名空间与作用域、相对导入以及包的结构和导入等方面,通过丰富的示例代码,助你更全面地理解和应用这
    2024-01-01
  • Python使用read_csv读数据遇到分隔符问题的2种解决方式

    Python使用read_csv读数据遇到分隔符问题的2种解决方式

    read.csv()可以从带分隔符的文本文件中导入数据,下面这篇文章主要给大家介绍了关于Python使用read_csv读数据遇到分隔符问题的2种解决方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 利用Python进行网络爬虫和数据抓取的代码示例

    利用Python进行网络爬虫和数据抓取的代码示例

    在当今数字化时代,数据是无处不在的,从市场趋势到个人偏好,从社交媒体活动到商业智能,数据扮演着关键的角色,Python提供了一套强大而灵活的工具,使得网络爬虫和数据抓取成为可能,本文将深入探讨如何利用Python进行网络爬虫和数据抓取,为您打开数据世界的大门
    2024-05-05
  • 复制粘贴功能的Python程序

    复制粘贴功能的Python程序

    接下来,由于我觉得手动复制粘贴这29000条插入语句实在是太痛苦了,所以打算用Python来完成这项工作。这是我第一次自己动手写Python代码,感觉还挺顺利的。
    2008-04-04
  • Python使用Turtle模块绘制国旗的方法示例

    Python使用Turtle模块绘制国旗的方法示例

    这篇文章主要给大家介绍了关于Python使用Turtle模块绘制国旗的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 教你利用PyTorch实现sin函数模拟

    教你利用PyTorch实现sin函数模拟

    这篇文章主要给大家介绍了关于教你利用PyTorch实现sin函数模拟的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Python pandas对excel的操作实现示例

    Python pandas对excel的操作实现示例

    这篇文章主要介绍了Python pandas对excel的操作实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 设置python3为默认python的方法

    设置python3为默认python的方法

    我们知道在Windows下多版本共存的配置方法就是改可执行文件的名字,配置环境变量。接下来通过本文给大家介绍设置python3为默认python的方法,一起看看吧
    2018-10-10
  • python安装CLIP包出现错误:安装.git报错问题及解决

    python安装CLIP包出现错误:安装.git报错问题及解决

    这篇文章主要介绍了python安装CLIP包出现错误:安装.git报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06

最新评论