PyCharm+PySpark远程调试的环境配置的方法

时间:2022-03-24 22:56:37

前言:前两天准备用 python 在 spark 上处理量几十g的数据,熟料在利用pycharm进行pyspark远程调试时掉入深坑,特写此博文以帮助同样深处坑中的bigdata&machine learning fans早日出坑。

version :spark 1.5.0、python 2.7.14

1. 远程spark集群环境

首先spark集群要配置好且能正常启动,版本号可以在spark对应版本的官方网站查到,注意:spark 1.5.0作为一个比较古老的版本,不支持python 3.6+;另外spark集群的每个节点的python版本必须保持一致。这里只讲如何加入pyspark远程调试所需要修改的部分。在$spark_home/conf/spark-env.sh中添加一行:

?
1
export pyspark_python=/home/hadoop/anaconda2/bin/python2

这里的python路径是集群上python版本的路径,我这里是用的anaconda安装的python2,所以路路径如上。正常启动spark集群后,在命令行输入pyspark后回车,能正确进入到pyspark shell。

2. 本地pycharm配置

首先将spark集群的spark-1.5.0部署包拷贝到本地机器,并在/etc/hosts(linux类机器)或c:\windows\system32….\hosts(windows机器)中加入spark集群master节点的ip与主机名的映射;本地正确安装spark集群同版本python;

安装py4j

PyCharm+PySpark远程调试的环境配置的方法

添加spark-1.5.0/python目录

PyCharm+PySpark远程调试的环境配置的方法

新建一个python文件simple,编辑edit configurations添加spark_home变量

PyCharm+PySpark远程调试的环境配置的方法

写一个类似下面的简单测试程序

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- encoding: utf-8 -*-
# @auther:mars
# @datetime:2018-03-01
from pyspark import sparkcontext
 
sc = sparkcontext("spark://master:7077","simple app")
logdata = sc.textfile("hdfs://master:9000/readme.md").cache()
 
numas = logdata.filter(lambda s: 'a' in s).count()
numbs = logdata.filter(lambda s: 'b' in s).count()
 
print("lines with a: %i, lines with b: %i"%(numas, numbs))
 
sc.stop()

运行可以得到看到下图,就ok了~

PyCharm+PySpark远程调试的环境配置的方法

切记,1)本地与spark集群的版本要一致;2)程序中不要用ip地址(不信可以试试,如果你用ip地址不报错,请告知我~谢谢)

以上这篇pycharm+pyspark远程调试的环境配置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/mycafe_/article/details/79430320