pyspark2.x环境搭建
因为文章主要是整理pyspark2.x的使用,不涉及到集群管理和集群参数调整,因此这里选择使用win10的linux子系统Ubuntu的方式搭建spark环境。
关于win10的linux子系统安装方法,网上有很多教程,也很简单,基本就是到win10应用商店下载,然后点击安装即可。
需要注意的是,必须是win10系统。如果实在不行,用VMware虚拟机也行。
通过 /mnt
目录挂在windows文件系统,可以很方便操作windows文件系统的文件,连共享文件夹和ftp都免了,是不是很方便啊。
比如,将e:\tmp\data.csv
复制到 /home/zhenyu
下面,可以使用下面的命令:
cp /mnt/e/tmp/data.csv /home/zhenyu
windows的cmd命令行实在难用,因此使用xshell工具,需要启动ssh服务。
apt-get install openssh-server
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo chmod 777 /etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config
Port 23 # 端口改为23,22端口已被占用
ListenAddress 0.0.0.0 # 取消注释
# StrictModes yes # 注释这一行
PasswordAuthentication yes # 允许密码登录
sudo service ssh start
sshd error: could not load host key
,则用下面的命令重新生成
sudo rm /etc/ssh/ssh*key
dpkg-reconfigure openssh-server
ps -e |grep ssh
,如果出现sshd安装成功重新启动: sudo service ssh start
使用xhell连接:
从java官网下载linux版java包,然后放在/home/zhenyu/apps
下面,然后:
- 解压:tar -zxvf jdk-8u151-linux-x64.tar.gz
- 配置环境变量:vi .bashrc
export JAVA_HOME=/opt/ai_apps/xxl_job/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
- 刷新环境变量:source .bashrc
- 检查是否安装成功:javac
,java -version
需要注意的是,hadoop版本要和spark的版本相一致,在spark下载页面有说明,这里选用spark版本是spark-2.3.0-bin-hadoop2.7.tgz
,因此hadoop版本是2.7.
下载hadoop安装包并将其放到/home/zhenyu/apps
下面,
- 解压:tar -zxvf hadoop-2.7.3.tar.gz
- 配置环境变量:vi .bashrc
export HADOOP_HOME=/home/zhenyu/apps/hadoop-2.7.3
export PATH=${HADOOP_HOME}/bin:$PATH
将下载的spark-2.3.0-bin-hadoop2.7.tgz
放到/home/zhenyu/apps
下面,
- 解压:tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz
- 配置环境变量:vi .bashrc
export SPARK_HOME=/home/zhenyu/apps/spark-2.3.0-bin-hadoop2.7
export PATH=${SPARK_HOME}/bin:$PATH
配置
减少日志输出为warning级别,修改spark/conf/
,修改为
log4j.rootCategory=INFO, warning
这里安装anaconda发现版,默认包含了很多常用的科学计算包,而且虚拟环境管理起来也很方便。
具体就不细说了,参见网上教程,很多,也很简单。
在命令行输入pyspark,查看输出是否正确
# pyspark
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 2.3.0
/_/
Using Python version 3.6.4 (default, Jan 16 2018 18:10:19)
SparkSession available as 'spark'.
#
import pandas as pd
from pyspark.sql import SparkSession
spark=SparkSession.builder.appName('my_first_app').getOrCreate()
df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['row1', 'row2'], columns=['c1', 'c2', 'c3'])
spark_df=spark.createDataFrame(df)
spark_df.show()
print('successful')