pyspark集群部署

1、安装spark2.1.0 (略)

2、安装Python3环境

下载Anaconda3-4.2.0-Linux-x86_64.sh
下载地址
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-4.2.0-Linux-x86_64.sh

安装Anaconda3
切换到有hdfs读写权限和spark程序执行的用户(如:hadoop用户)

sh Anaconda3-4.2.0-Linux-x86_64.sh

Enter 回车

选yes, 同意协议

对应python 版本 Python 3.5.2

Enter 回车 输入安装路径(非当前用户home目录下,本人安装路径在/opt/py3/anaconda3,
注意:输入前修改/opt/py3目录属主为当前用户)

选择no 后面配置全局环境变量
3、修复异常

如果$SPARK_HOME/conf 目录下配置了hive环境:
hive-env.sh
hive-site.xml 配置

需要添加 oracle驱动包到spark classpath

添加ojdbc14-10.2.0.4.0.jar
到$SPARK_HOME/jars目录

ClassNotFoundException: Class com.hadoop.compression.lzo.LzoCodec not found
在spark-env.sh中加入

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cloudera/parcels/HADOOP_LZO-0.4.15-1.gplextras.p0.123/lib/hadoop/lib/native:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*

export SPARK_LIBRARY_PATH=$SPARK_LIBRARY_PATH:/opt/cloudera/parcels/HADOOP_LZO-0.4.15-1.gplextras.p0.123/lib/hadoop/lib/native:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*

export SPARK_CLASSPATH=$SPARK_CLASSPATH:/opt/cloudera/parcels/HADOOP_LZO-0.4.15-1.gplextras.p0.123/lib/hadoop/lib/native:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*

4、配置环境变量

#spark
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME

#python3
export PYSPARK_PYTHON=/opt/py3/anaconda3/bin/python
export PYTHONPATH=${SPARK_HOME}/python/:$(echo ${SPARK_HOME}/python/lib/py4j-*-src.zip):${PYTHONPATH}

5、分发复制到集群其他节点(略)

6、测试验证
编写python 程序 如
test.py

from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local[*]").setAppName("First_App")
sc = SparkContext(conf=conf)
sc.textFile("/tmp/xxx测试路径").count()
sc.stop()

提交运行

 /usr/local/spark/bin/spark-submit \
   --master yarn \
   --deploy-mode client \
   --executor-memory 2G \
   --num-executors 5 \
   --executor-cores 2 \
   --driver-memory 2G \
   --queue spark \
  /home/hadoop/f.py \
   env=dev  \
   log.level=info

没有异常出现 说明部署成功!

Logo

更多推荐