Pycharm配置Spark避坑指南

PS:本文建立在使用Mac或者linux系统的基础上,也不建议使用window系统进行spark配置=_=

安装JAVA环境

这部没啥好说的吧,上网搜java安装一大把。
切记配置java全局变量

vim ~/.bash_profile 

然后输入

export JAVA_HOME=$(/usr/libexec/java_home)

安装scala

这里推荐Mac党首选工具brew
可以省去你配置全局变量以及管理包这一影响效率的过程

  • 安装scala的命令
brew install scala

安装完成后用

$ scala -version

查看是否安装成功

安装Spark

这里有一个坑一定要注意,
不要用brew去安装spark!!!
不要用brew去安装spark!!!
不要用brew去安装spark!!!

因为brew安装完的所有的包地址都在

$ /usr/local/Cellar/

里面,这意味着你在pycharm执行命令会有权限问题的产生

所以我们采用去官网下载包的方式: P

http://spark.apache.org/downloads.html

《Pycharm配置Spark避坑指南》 Spark官网

下载完成后解压

tar -zxvf spark-2.0.1-bin-hadoop2.7.tgz

配置spark路径

vim ~/.bash_profile

配置如下参数(自己本机spark路径,***填自己的真实路径)

export  SPARK_HOME = /Users/***/spark/spark-2.0.1-bin-hadoop2.7
export PATH= $PATH:$SPARK_HOME/bin

如果一切没有配置过SSH,在主目录输入如下命令:

ssh-keygen –t rsa –P 

一直按回车直到结束,接着输入命令,追加私钥:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

启动Spark

进入Spark目录运行pyspark启动脚本:

$ pyspark

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.23.04.png

在pycharm中配置spark

首先打开pyCharm 的Perferences > Project Structure

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.25.16.png

  • 选择右边👉的Add Content Root
  • 找到spark的目录
  • 导入py4j和pyspark的包
    包的具体位置为:
spark > python >lib 

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.28.24.png

配置完成后:

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.28.50.png

接着我们打开工程右上角的Edit Condigurations

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.29.07.png

找到Environment Variables配置:

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.30.09.png

接着配置PYTHONPATH和SPARK_HOME

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.31.20.png

PYTHONPATH为spark目录下python包的位置
在我的电脑中,PYTHONPATH为

/Users/xulei2/Documents/tmpFile/DataMining/spark-2.2.0-bin-hadoop2.7/python

SPARK_HOME为:

/Users/xulei2/Documents/tmpFile/DataMining/spark-2.2.0-bin-hadoop2.7

点击确认,配置成功:)

测试是否能够正常运行
import sys

try:
    from pyspark import SparkContext
    from pyspark import SparkConf

    print ("Successfully imported Spark Modules")
except ImportError as e:
    print ("Can not import Spark Modules", e)
    sys.exit(1)

sc = SparkContext("local","apple")
words = sc.parallelize(["scala", "java", "hadoop", "spark", "akka"])
print(words.count())

输入下面结果即为正常

《Pycharm配置Spark避坑指南》 屏幕快照 2018-01-14 下午2.34.35.png

brew安装的种种坑

这里就不提了,别用brew安装spark就成,我是配置了一个下午无果,始终显示

Java gateway process exited before sending the driver its port number

如果有老司机能够给予解答,万分感谢,毕竟brew配置spark比起自己手动配置方便了不是一点两点- –

如果其他童鞋配置spark有问题,欢迎给我留言共同交流:)

    原文作者:Metatronxl
    原文地址: https://www.jianshu.com/p/65aec07dea32
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞