spark
spark的安装
-
安装Scala
-
下载:
wget http://www.scala-lang.org/files/archive/scala-docs-2.13.0-M3.tgz
-
解压:
tar xvf package
-
安装:
sudo mv scala-2.13.0 /usr/local/scala
-
环境变量:
~/.bashrc
#add #SCALA变量 export SCALA_HOME=/usr/local/scala export PATH=$PATH:$SCALA_HOME/bin
source .bashrc
-
启动Scala
scala
-
安装Spark
-
下载:
wget http://mirror.bit.edu.cn/apache/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.7.tgz
-
解压:
tar zxf spark-2.3.0-bin-hadoop2.7.tgz
-
安装:
sudo mv ./spark-2.3.0-bin-hadoop2.7 /usr/local/spark
-
环境变量:
#spark变量 export PYSPARK_PYTHON=python3#pyspark版本 export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin
-
启动pyspark交互界面
pyspark
-
设置pyspark显示信息
cd /usr/local/spark/conf cp log4j.properties.template log4j.properties nano log4j.properties #修改成WARN log4j.rootCategory=WARN, console
本地运行pyspark
pyspark --master local[*]
测试命令:
sc.master
textFile = sc.textFile("file:/usr/local/spark/README.md")
textFile.count()
Spark Standalone Cluster 运行环境
- 在master中设置spark-env.sh
复制模板文件
cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh
编辑spark-env.sh文件
export SPARK_MASTER_IP=master#masterIP设置
export SPARK_WORKER_CORES=1#worker使用CPU核心数
export SPARK_WORKER_MEMORY=512m#每个worker使用内存
export SPARK_WORKER_INSTANCES=1#实例数
- 复制spark到data1、data2、data3
ssh data1
sudo mkdir /usr/local/spark
sudo chown hduser:hduser /usr/local/spark
exit
sudo scp -r /usr/local/spark hduser@data1:/usr/local
data2、data3同样配置
编辑slaves文件
sudo nano /usr/local/spark/conf/slaves
data1
data2
data3
- 启动Spark Standalone Cluster
/usr/local/spark/sbin/start-all/sh
- 分别启动master、slaves
/usr/local/spark/sbin/start-master/sh
/usr/local/spark/sbin/start-slaves/sh
- 运行pyspark
pyspark --master spark://master:7077 --num-executors 1 --total-executor-cores 3 --executor-memory 512m
- 测试命令
sc.master
textFile = sc.textFile("file:/usr/local/spark/README.md")
textFile.count()
- spark web ui
IPython Notebook运行python spark
安装JUPYTER
sudo pip3 install jupyter
配置jupyter远程连接
-
创建登录密码
In [1]: from IPython.lib import passwd In [2]: passwd() Enter password: Verify password: Out[2]: 'sha1:................................' # 根据你的密码生成sha1值
-
创建jupyter notebook服务器
ipython3 profile create myserver
这里的myserver是自定义的服务器名字。
执行之后,命令行会有输出,告诉我们生成的文件在哪里。一般在/home/yourname/.ipython/profile_myserver/这个文件夹下。
我们可以进入到该文件夹下,并查看一下生成的文件:
一般没有问题的话,会生成ipython_config.py,ipython_kernel_config.py和ipython_notebook_config.py三个文件。
需要修改该ipython_notebook_config.py文件来配置服务器。不过,我测试的时候这个文件不能生成,直接手动创建即可。
-
修改配置文件ipython_notebook_config.py
c = get_config() c.IPKernelApp.pylab = 'inline' c.NotebookApp.ip='*' c.NotebookApp.open_browser = False c.NotebookApp.password = u'...........' # 第2步生成的sha1值 c.NotebookApp.port = 8888 # 端口号,设置一个没被占用的
-
启动jupyter notebook服务器
jupyter notebook --config=/home/hduser/.ipython/profile_myserver/ipython_notebook_config.py
此时可以远程浏览器访问jupyter notebook
不同模式下pyspark 的jupyter notebook运行
-
本地模式:
PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS="notebook" pyspark --master local[*]
-
starnalone cluster 模式
/usr/local/spark/sbin/start-all.sh PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS="notebook" MASTER=spark://master:7077 pyspark --num-executors 1 --total-executor-cores 2 --executor-memory 512m