1.文档编写目的
在早些时间Cloudera已正式的发布CDS3《0814-基于CDP7.1.3的Spark3.0正式发布》。在CDP私有云基础上,Spark3服务与现有的Spark2服务共存,两个服务的配置不冲突,可以共用共一个Yarn服务。Spark History服务的端口是Saprk2的18088和Spark3的18089。CDS3.2在支持GPU的同时,也引入了RAPIDS Accelerator for Apache Spark来加速CDP集群上Apache Spark3的性能。本篇文章主要介绍如何在CDP集群中安装及使用Spark3。
- 当前发布的版本不支持以下connector:
1.Phoenix
2.SparkR
3.Hive Warehouse
4.Oozie
5.Zeppelin
- 测试环境
1.CM7.4.4和CDP7.1.7
2.操作系统版本Redhat7.6
3.集群未启用Kerberos
2.安装前置要求
以下部分主要介绍了Apache Spark提供支持的CDS3.2软件安装要求:
- CDS3.2目前是CDP集群提供的额外服务,仅支持Cloudera Runtime7.1.7及更高版本,Spark2包含在CDP中,不需要单独的parcel。
- 虽然Spark2和Spark3可以共存与同一个CDP集群,但不能同时支持多个Spark3版本。
- 确保集群的所有节点已安装JDK8或JDK11,Cloudera建议使用JDK8,因为大多数的测试都是使用JDK8完成的。
- Scala版本要求为2.12
- Python使用3.6或更高版本
3.安装包准备
由于CDS3.2是Cloudera提供独立的安装包,是由一个自定义服务描述文件(CSD)和一个parcel包,这两个文件都必须安装在CDP集群。
1.从Cloudera 的官网下载CSD文件
https://archive.cloudera.com/p/spark3/3.2.7170.0/csd/SPARK3_ON_YARN-3.2.0.3.2.7170.0-49.jar
2.下载parcel包,地址如下
https://archive.cloudera.com/p/spark3/3.2.7170.0/parcels/
3.将下载下来的parcel文件,部署到自己本地httpd服务器的/var/www/html目录下
访问本地的http服务,确认服务是否正常
主要在httpd服务部署manifest.json和SPARK3-3.2.0.3.2.7170.0-49-1.p0.18822714-el7.parcel* 三个文件即可。
4.Spark服务安装
1.安装CSD文件,将下载好的SPARK3_ON_YARN-3.2.0.3.2.7170.0-49.jar包上传至CM服务所在节点的/opt/cloudera/csd目录下,并修改文件属主及权限
代码语言:javascript复制chown cloudera-scm:cloudera-scm /opt/cloudera/csd/SPARK3_ON_YARN-3.2.0.3.2.7170.0-49.jar
chmod 644 /opt/cloudera/csd/SPARK3_ON_YARN-3.2.0.3.2.7170.0-49.jar
2.完成CSD文件的安装后,重启Cloudera Manager Server服务
代码语言:javascript复制systemctl restart cloudera-scm-server
systemctl status cloudera-scm-server
3.完成CM服务的重启后,使用管理员登录CM WEB控制台,进入Parcel管理界面
配置parcel的Repositories为本地搭建的源
4.完成parcel地址的配置后,回到Parcel管理界面下载Spark3包
5.完成Parcel包的下载后,点击“分配”
6.完成分配后,点击“激活”
7.完成上述操作后,回到CM主页面添加Spark3服务
进入服务添加页面,选择需要添加的Spark3服务
8.点击“继续”,进入分配角色页面
9.完成角色分配后,点击“继续”,进入服务配置审核更改界面,按需调整即可
10.完成调整后,点击“继续”,进入服务首次运行命令界面
运行成功
到此完成了Spark3服务的安装
5.功能测试
1.在命令行运行Spark3-shell命令测试
查看Hive表
代码语言:javascript复制sql("show tables").show()
代码语言:javascript复制sql("select * from testa").show()
代码语言:javascript复制sql("select count(*) from testa").show()
以上操作均能正常执行,且可以正常访问Hive表及数据,通过Yarn查看Spark的作业也可以正常的查看
2.使用spark3-submit名提交一个pi作业测试
代码语言:javascript复制spark3-submit --class org.apache.spark.examples.SparkPi
--master yarn --num-executors 4 --driver-memory 1g
--driver-cores 1 --executor-memory 1g --executor-cores 1
/opt/cloudera/parcels/SPARK3/lib/spark3/examples/jars/spark-examples_2.12-3.2.0.3.2.7170.0-49.jar 10
作业运行成功