在MRS集群中使用python3运行pyspark
【摘要】 使用python3运行pyspark,需要做两步:1. 在mrs集群的所有core节点,以及提交任务的节点(通常为mrs的master节点),均安装python3;2. 指定pyspark使用的python路径。
使用python3运行pyspark,需要做两步:
在mrs集群的所有core节点,以及提交任务的节点(通常为mrs的master节点),均安装python3;
指定pyspark使用的python路径。
1. 安装python
MRS使用的操作系统是EulerOS,目前EulerOS无法直接通过yum安装python3,需要自行编译。
1.1 编译安装
在master1节点编译python
# 配置华为云欧拉镜像源 wget http://mirrors.myhuaweicloud.com/repo/mirrors_source.sh && sh mirrors_source.sh # 安装必要的工具,用来编译python3 yum groupinstall "Development tools" -y yum -y install zlib zlib-devel yum -y install bzip2 bzip2-devel yum -y install ncurses ncurses-devel yum -y install readline readline-devel yum -y install openssl openssl-devel yum -y install openssl-static yum -y install xz lzma xz-devel yum -y install sqlite sqlite-devel yum -y install gdbm gdbm-devel yum -y install tk tk-devel yum -y install libffi libffi-devel # 下载,解压python3的tgz包,也可以自行去python官网下一个 # 推荐使用Python-3.6.X版本,3.7版本无法使用rdd的take函数,具体参考 wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz tar -zxvf Python-3.6.7.tgz cd Python-3.6.7 # 配置信息及编译安装,安装到/opt/Bigdata/python3目录下,也可以自行指定 ./configure --prefix=/opt/Bigdata/python3 --enable-shared CFLAGS=-fPIC make && make install # 改下安装目录的权限,便于后面打包分发 chmod -R 777 /opt/Bigdata/python3
1.2 分发编译好的python到集群上所有节点
执行下面命令,获取scp命令,用于分发python包。
# 切换到omm用户 su omm; # 打包 cd /opt/Bigdata/ && tar -zcf /tmp/python3.tar.gz python3 && chmod 777 /tmp/python3.tar.gz # 获取 cat /etc/hosts | grep node | awk '{print $1}'| sed 's|$|:/tmp/|' | sed 's|^|scp /tmp/python3.tar.gz |'
下面命令是在我的集群上得到的,在master节点用omm用户,执行这些命令即可分发python包到所有节点。
scp /tmp/python3.tar.gz 192.168.0.235:~/ scp /tmp/python3.tar.gz 192.168.0.183:~/ scp /tmp/python3.tar.gz 192.168.0.155:~/
分发完毕后,需要在所有节点解压。可以在master节点用omm用户使用执行命令得到所有解压命令。
cat /etc/hosts | grep node | awk '{print $1}'| sed 's|$| "tar -zxf /tmp/python3.tar.gz -C /opt/Bigdata ;chmod -R 777 /opt/Bigdata/python3"|' | sed 's|^|ssh |'
如下方所示,执行即可在所有节点解压
ssh 192.168.0.235 "tar -zxf /tmp/python3.tar.gz -C /opt/Bigdata ;chmod 777 /opt/Bigdata" ssh 192.168.0.183 "tar -zxf /tmp/python3.tar.gz -C /opt/Bigdata ;chmod 777 /opt/Bigdata" ssh 192.168.0.155 "tar -zxf /tmp/python3.tar.gz -C /opt/Bigdata ;chmod 777 /opt/Bigdata"
1.3 配置变量
用root用户逐个登录到集群上所有安装python3的节点,执行下面的命令:
echo "/opt/Bigdata/python3/lib" >> /etc/ld.so.conf ldconfig ln -s /opt/Bigdata/python3/bin/python3 /usr/bin/python3 ln -s /opt/Bigdata/python3/bin/pip3 /usr/bin/pip3
1.4 测试
挑选几个节点,执行python3,正常运行则安装成功。
2. 配置pyspark使用的python
2.1 配置PYSPARK环境变量
在提交任务的节点(比如master1),提交前执行
export PYSPARK_PYTHON=/opt/Bigdata/python3/bin/python3
或将上面这一样配置在客户端客户端目录下spark-env.sh文件中(默认路径:/opt/client/Spark/spark/conf)
echo "export PYSPARK_PYTHON=/opt/Bigdata/python3/bin/python3" >> /opt/client/Spark/spark/conf/spark-env.sh
2.2 测试
source /opt/client/bigdata_env; pyspark --master yarn
可以看到已经用上了python3.X
在shell中执行,测试能否正常运行作业。
sc.parallelize(range(1000)).saveAsTextFile("/tmp/test_python3")
再开一个窗口,命令行中执行 hadoop fs -ls /tmp/test_python,对应目录有输出则配置成功
3. 参考资料
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)