如何在 GPU 上进行海量数据流的 ETL 处理

为什么GPU适合做ETL

在这里插入图片描述
图为ACM特征工程比赛运行耗时比较:使用1块GPU(V100)大约比cpu(至强)提升3倍。4块GPU(V100)+UCX提升25倍。

RAPIDS(科学计算体系)

在这里插入图片描述
RAPIDS体系结构用于科学计算,应用层介绍如下:

RAPIDS提供cuDF cuIO(类似于pandas调用GPU)、cuML(回归与分类算法GPU计算)、cuGraph(计算图)、DeepLearning(GPU计算框架)、cuxfillter(可视化)五类应用方向。

ETL主要使用的也就是cuDF cuIO(GPU处理大数据。补充:Desk用于多台数据处理)。

cuDF技术栈

在这里插入图片描述
cuDF应用层级使用python主流的数据处理的包完成GPU加速。
在这里插入图片描述
cuDF使用用例,使用基本与pandas相似,底层调用Cuda加速处理。

cuDF性能

在这里插入图片描述
对比Merge、sort、GroupBy三个函数每秒数据处理情况,大数据下GPU在单位时间处理更多数据。

cuIO

在这里插入图片描述
cuIO优化读取方式,避免了传统磁盘->内存->显存的方式,采用直接从磁盘->显存的读取方式。从上图看出,使用cuIO大约有1.5倍加速比。

Desk

提供了GPU与GPU交互方式以及多机间的加速。

BATCH ETL流式处理

在这里插入图片描述
当下随时随地产生的数据,不能用统一的格式规范,这时提出流的概念,让数据之间没有格式上的显示,处理流程按数据流处理。

数据处理也越来越复杂,每一个处理流程成之为pipeline(多个Job),但不同的pipeline之间也有交差,适应用于计算需求。

Kafka是分布式数据处理平台,将用户端与数据处理后端隔离,由Kafka平台管理多个pipeline,更多为数据实时处理。

在这里插入图片描述

上图为流式处理格式信息

弹性处理、科学计算平台、分布式计算

三大件

在这里插入图片描述

STREAMZ

STREAMZ 用于管理pipeline,处理数据存储到Kafka.
在这里插入图片描述
在这里插入图片描述

cuStreamz

在这里插入图片描述
基于Streamz,提出用于GPU计算套件。

如何使用RAPIDS

在这里插入图片描述

总结

NVIDIA提出一种用于ETL(Extract-Transform-Load,数据仓储技术)计算的技术RAPIDS,优势在于使用具有大量多线程处理的GPU处理数据,较比于CPU性能有较大的提升;结合当下主流数据处理工具,并对流行的库进行使用迁移,方便用户使用。

参考:如何在 GPU 上进行海量数据流的 ETL 处理

要实现利用RAPIDS与Apache Spark整合的GPU加速数据处理,首先需要理解RAPIDS Accelerator for Apache Spark的工作机制。RAPIDS是一个集成了数据处理、机器学习和图形计算的GPU加速平台,它可以与Apache Spark无缝集成,通过使用CUDA-X AI数据科学库,将Spark的DataFrame操作加速至GPU。这一过程不需要对现有Spark作业进行代码层面的修改,因为RAPIDS Accelerator与Spark的DataFrame API兼容。 参考资源链接:[使用RAPIDS加速Apache Spark 3.0的性能提升](https://wenku.youkuaiyun.com/doc/3xu0zsuwsv?spm=1055.2569.3001.10343) 当处理大规模数据集时,Shuffle操作往往是性能瓶颈,因为数据需要在不同的节点之间传输和重新分配。RAPIDS Accelerator针对Shuffle过程进行了优化,通过GPU的并行计算能力减少了Shuffle阶段的延迟,从而提高了整体的数据处理速度。此外,RAPIDS还优化了数据在GPU内存中的管理,确保了高效的数据和减少了数据传输的开销。 在TPCx-BB基准测试中,使用RAPIDS Accelerator的Apache Spark在处理大规模电商数据集时,尤其是在某些关键查询上,展现了显著的性能提升。通过GPU加速,执行时间相比传统CPU有着大幅度的缩短,这意味着数据处理速度和系统吞吐量的明显改进。 对于深度学习模型训练,如DLRM模型,RAPIDS同样展现了强大的加速能力。在训练过程中,GPU的高并行计算性能比CPU快了数十倍,而在ETL阶段,通过GPU进行数据预处理的效率更是让整个程的速度提升了160倍。这对于需要处理海量数据并且对时间敏感的深度学习应用来说,具有重大的意义。 为了充分利用RAPIDS Accelerator的性能优势,建议开发者深入学习《使用RAPIDS加速Apache Spark 3.0的性能提升》这份文档。它不仅提供了RAPIDS如何与Spark整合的详细信息,还包括了优化Shuffle过程和ETL操作的策略,以及如何在实际应用中利用GPU加速提升数据处理和机器学习任务的性能。通过这份资料,开发者可以系统地掌握如何在特定场景下利用RAPIDS提升性能,进而更好地规划和实施数据处理项目。 参考资源链接:[使用RAPIDS加速Apache Spark 3.0的性能提升](https://wenku.youkuaiyun.com/doc/3xu0zsuwsv?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值