0873-7.1.7-如何在CDP集群中安装Spark3

2022-04-08 12:45:14 浏览数 (1)

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文件

代码语言:javascript复制
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包,地址如下

代码语言:javascript复制
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

作业运行成功

0 人点赞