前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0879-7.1.7-如何在CDP安装NVIDIA Tesla T4并使用RAPIDS加速

0879-7.1.7-如何在CDP安装NVIDIA Tesla T4并使用RAPIDS加速

作者头像
Fayson
发布2022-04-28 11:13:48
9170
发布2022-04-28 11:13:48
举报
文章被收录于专栏:Hadoop实操

本文作者:BYD信息中心-数据中心管理部-董睿

进入正文之前先打一个小广告,手动狗头

比亚迪西安研发中心(与深圳协同办公),base西安,招聘大数据平台运维、架构方向的工程师,实时计算方向工程师,感兴趣的小伙伴请投递简历至dong.rui@byd.com

1.文档编写目的

RAPIDS 全称是Real-time Acceleration Platform for Integrated Data Science,是 NVIDIA 针对数据科学和机器学习推出的 GPU 加速库,RAPIDS的推出其实是为了弥补GPU在大数据处理以及传统机器学习上的缺口,也反应出NVIDIA想要打通数据处理和深度学习模型,构成统一的从raw data到result的pipeline全部都在GPU上运行的闭环。

Apache Spark 3.0历时两年的开发,终于在2020年发布,Release Note里面也是包含很多重磅的功能,其中之一就是允许开发者以plugin的形式修改SQL以及DataFrame的后端执行引擎,同时这种修改对Spark的上层用户透明。

NVIDIA借助这个功能,推出针对Spark的RAPIDS Plugin, 将Spark上数据处理迁移到GPU中,只需要用户做简单的代码修改,就可以感受GPU的高性能计算。

我们看下官网的一些解释:

  • 在无需更改任何代码的情况下显著提高 Spark SQL 和 DataFrame 的运行性能,从而加速 Spark 中的 ETL 数据流程。
  • 无需独立的机器学习和深度学习集群,即可在相同的基础架构上加速数据准备和模型训练。
  • 加速 Spark 分布式集群中各节点之间的数据传输性能。这些资源库使用 UCF Consortium 的开源 UCX(Unified Communication X)框架,并通过使数据直接在 GPU 内存之间移动来最大程度地减少延迟。

所以整体来看,就是可以使用GPU加速ETL、数据清洗等数据准备工作,同时和后期的模型训练Job无缝对接,形成整个从raw data到result的pipeline。

我们再来看看官方给出的ETL在CPU和GPU上的对比数据:

本文主要描述如何在CDP7.1.7中对计算节点安装NVIDIA Tesla T4,并使用RAPIDS对Spark3应用进行加速。

测试环境

  • 操作系统:CentOS Linux release 7.9.2009 (Core)
  • JDK:jdk1.8.0_232-cloudera
  • CDH:7.1.7 SP1
  • Spark:3.2.1.3.2.7171000
  • 显卡:Nvidia Tesla T4

2.Nvidia Tesla T4安装

1.安装显卡硬件,该过程省略,无法用言语描述。

2.下载显卡驱动

下载地址:

代码语言:javascript
复制
https://www.nvidia.cn/Download/index.aspx?lang=cn

根据显卡型号选择对应驱动

下载

下载后得到如下rpm包:

nvidia-driver-local-repo-rhel7-510.47.03-1.0-1.x86_64.rpm

3.操作系统安装驱动

在官网的下载页面,官方已经在其他信息提供安装步骤

  • 显卡和驱动安装位置

You can configure GPU scheduling and isolation on your cluster. Currently only Nvidia GPUs are supported in YARN.

YARN NodeManager must be installed with the Nvidia drivers.

根据CDP文档提示,实际上就是所有的YARN NodeManager进行安装

  • 安装驱动包

上传下载好的包到各计算节点,并进行安装

代码语言:javascript
复制
#Once you accept the download please follow thesteps listed below
rpm -invidia-driver-local-repo-rhel7-510.47.03-1.0-1.x86_64.rpmyum clean allyum install cuda-driversreboot

此处没有其他额外说明,安装完毕后,需要重启操作系统生效

这里实际上就是配置了一个本地yum源,对于强迫症,安装后注释掉yum源

4.验证

操作系统重启完毕,执行

代码语言:javascript
复制
nvidia-smi

此时,显卡部分安装完毕

5.其他说明

之前参加Cloudera会议时,会议方有如下针对spark算力的介绍和推荐

GPU vs CPU

会议方推荐显卡为A30

受于条件限制我们测试使用的是T4,性能上差距还是非常明显

代码语言:javascript
复制
https://www.nvidia.cn/data-center/products/a30-gpu/

3.集群调整和配置

3.1Enabling CDS 3.2.1 with GPU Support

根据CDP文档中要求,安装前必须启用GPU scheduling and isolation;另外是基于角色组的配置,我们此次并没有配置这方面内容

文档链接如下:

代码语言:javascript
复制
https://docs.cloudera.com/cdp-private-cloud-base/7.1.7/cds-3/topics/spark-activate-cds-for-gpu.html#concept_m5m_zdd_2sb

3.2GPU scheduling and isolation

如上文中提到YARN,这里实际上就是修改配置YARN

1.主机配置

In Cloudera Manager, navigate to Hosts > Hosts Configuration.

2.搜索cgroup

3.启用基于 Cgroup 的资源管理

4.保存

5.在Yarn配置

6.搜索cgroup

7.启用Use CGroups for Resource Management

8.启用Always use Linux Container Executor

9.搜索gpu

10.启用Enable GPU Usage

以下默认即可

NodeManager GPU Devices Allowed

NodeManager GPU Detection Executable

11.重启所有服务

CDP文档地址:

代码语言:javascript
复制
https://docs.cloudera.com/cdp-private-cloud-base/7.1.7/yarn-allocate-resources/topics/yarn-configuring-gpu-scheduling-and-isolation.html

4.Spark GPU加速测试

4.1 测试DEMO

SSB与Apache Flink同属于一个Parcel安装包,但是csd文件

代码语言:javascript
复制
spark3-shell \--conf spark.rapids.sql.enabled=true \--conf spark.executor.memoryOverhead=5g \--conf spark.task.resource.gpu.amount=1 \--conf spark.rapids.sql.concurrentGpuTasks=2 \--conf spark.sql.files.maxPartitionBytes=256m \--conf spark.locality.wait=0s \--conf spark.sql.adaptive.enabled=true \--conf spark.rapids.memory.pinnedPool.size=2G

val df = sc.makeRDD(1 to 100000000, 6).toDFval df2 = sc.makeRDD(1 to 100000000, 6).toDFdf.select($"value" as "a").join(df2.select($"value" as "b"), $"a" === $"b").count

4.2 Spark3 on GPU

以上为本次的一个简单测试

比亚迪西安研发中心(与深圳协同办公),base西安,招聘大数据平台运维、架构方向的工程师,实时计算方向工程师,感兴趣的小伙伴请投递简历至dong.rui@byd.com

参考文档:

代码语言:javascript
复制
当Spark遇上RAPIDS: GPU也可以玩转大数据处理https://zhuanlan.zhihu.com/p/349710160 NVIDIA spark-rapidsGithub地址https://github.com/NVIDIA/spark-rapids Getting Startedhttps://github.com/NVIDIA/spark-rapids/blob/branch-22.06/docs/get-started/getting-started.md Tuning Guidehttps://github.com/NVIDIA/spark-rapids/blob/branch-22.06/docs/tuning-guide.md Configurationhttps://github.com/NVIDIA/spark-rapids/blob/branch-22.06/docs/configs.md Nvidia官方地址https://nvidia.github.io/spark-rapids/ Getting Startedhttps://nvidia.github.io/spark-rapids/docs/get-started/getting-started-on-prem.html Configurationhttps://nvidia.github.io/spark-rapids/docs/configs.html Tuning Guidehttps://nvidia.github.io/spark-rapids/docs/tuning-guide.html Apache Spark3文档参数配置https://spark.apache.org/docs/latest/running-on-yarn.html#spark-properties
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
流计算 Oceanus
流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的企业级实时大数据分析平台,具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档