记录自己在linux下安装python3、spark、jupyter的过程,流程记录,算不上教学。
欢迎转载,转载请注明原文地址
http://blog.csdn.net/max_cola/article/details/78902597
centos安装使用的是CentOS-7-x86_64-DVD-1708.iso
root登录ssh
设置开机自动联网
vim /etc/sysconfig/network-scripts/ifcfg-ens33
根据其他资料显示,ifcfg-en33文件名不定,命名规则总是ifcfg-xxx,文件内容如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=1bf1d746-36b1-4812-9295-9bdbe339b3a5
DEVICE=ens33
ONBOOT=no
将最后一行ONBOOT=no
修改为ONBOOT=yes
,保存退出。
配置linux环境
安装后续会用到的各种东西,其实缺啥补啥就行,只是每次补足缺少的东西,总要重新编译,很费劲。
yum install -y gcc zlib zlib-devel openssl-devel sqlite-devel
最后几行如下
更改openjdk为java jdk
有啥用?不清楚,只是听说java jdk更好,所以瞎折腾。
卸载openjdk
rpm -qa | grep openjdk
结果如下:
这几个openjdk都要卸载,依次执行以下命令
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
再次执行rpm -qa | grep openjdk
检查是否卸载干净。结果如下:
安装java jdk
cd /usr/local
把java jdk拽进来,我用的jdk-8u151-linux-x64.tar.gz
tar -zxvf jdk-8u151-linux-x64.tar.gz
mv ./jdk1.8.0_151 ./java/ # 名字太长,改个名字
修改java jdk环境变量
vim /etc/profile
文末增加以下内容
#java jdk
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
保存退出,source /etc/profile
使之生效。输入javac
查看,再使用java -version
查看如果正确安装,结果如下:
安装python
cd /usr/local
把下载好的python拽进去,没有现成的wget下载一个也行。这里用的是Python-3.6.4.tgz
tar -zxvf Python-3.6.4.tgz
cd Python-3.6.4/
mkdir /usr/local/python3 # 创建安装文件夹,python3就安装在这里
./configure --prefix=/usr/local/python3 # 编译,指定安装目录
make && make install # 如果上一步没有安装依赖包,会提示出错,缺啥补啥,重新编译就完了。
配置python环境变量
看其他资料,一般都是使用ln -s /usr/local/python3/bin/python3 /usr/bin/python3
创建软连接,不过个人不太习惯,因为接下来要设置python中搜索spark的环境变量,而用软连接这种方法,我不会设置,囧,因此还是使用修改环境变量的方法。
命令行输入vim /etc/profile
,文末增加以下内容
#python
export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH
保存退出,source /etc/profile
使之生效。命令行输入python3 -V
和pip3 -V
如果正确安装,会分别返回如下结果:
Python 3.6.4
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)
安装Jupyter
pip3 install jupyter
安装成功截图如下:
进入虚拟机,使用终端打开jupyter
source /etc/profile # 首次使用需要重新source使配置生效
jupyter notebook
命令行结果如下:
最终会打开jupyter如下:
安装单机spark
cd /usr/local
把spark拽进来,我用的是spark-2.2.1-bin-hadoop2.7.tgz
tar -zxvf spark-2.2.1-bin-hadoop2.7.tgz
mv ./spark-2.2.1-bin-hadoop2.7 ./spark # 名字太长不看,改短
设置spark环境变量
vim /etc/profile
文末增加以下内容:
#spark
export SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin:$PATH
#add spark to python
export PYTHONPATH=/usr/local/spark/python
输入source /etc/profile
使之生效,输入pyspark
检查是否安装成功,如果正确安装,会返回如下界面:
将pyspark与jupyter连接
打开vim /etc/profile
配置环境变量。
文末增加如下内容:
#add pyspark to jupyter
export PYSPARK_PYTHON=/usr/local/python3/bin/python3 # 因为我们装了两个版本的python,所以要指定pyspark_python,否则pyspark执行程序会报错。
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
回到虚拟机,打开终端,执行以下命令
source /etc/profile
pyspark
命令行结果如下:
最终会打开jupyter,我们在jupyter中新建python3脚本。
输入sc
检查pyspark是否成功启动,如果结果如下,说明pyspark成功启动。
使用jupyter运行一个spark案例
求π
import random
num_samples = 1000
def inside(p):
x, y = random.random(), random.random()
return x*x + y*y < 1
count = sc.parallelize(range(0, num_samples)).filter(inside).count()
pi = 4 * count / num_samples
print(pi)
3.184