openeuler/uadk-bigdata架构详解:从硬件加速器到HBase的全栈加速通路
【免费下载链接】uadk-bigdataUADK is a general-purpose user space accelerator framework that uses the SVA technology to provide a unified programming interface for hardware acceleration computing cryptography and compression algorithms. Uadk-bigdata provides uadk solution in bigdata scenario.项目地址: https://gitcode.com/openeuler/uadk-bigdata
前往项目官网免费下载:https://ar.openeuler.org/ar/
openEuler / uadk-bigdata是基于UADK(通用用户空间加速器框架)构建的大数据场景加速方案,通过SVA技术为硬件加速计算、加密和压缩算法提供统一编程接口,实现从底层硬件到上层HBase应用的全栈性能优化。
一、UADK核心架构:打通硬件加速的"最后一公里" 🚀
UADK作为连接硬件加速器与软件应用的桥梁,其核心架构包含三个关键层次:
1.1 硬件加速层:Kunpeng 920的"算力引擎"
基于鲲鹏920处理器的硬件加速器(包括ZIP压缩引擎、SEC安全引擎等)是性能提升的物理基础。在使用前需通过BIOS配置开启SMMU支持:
图1:BIOS中SMMU相关配置界面,需确保"Support Smmu"和"Smmu Work Around"选项均设为Enabled
1.2 内核驱动层:uacce框架的"交通枢纽"
Linux内核通过uacce(用户空间访问加速器框架)提供硬件抽象,主要包含:
- 设备管理:/dev/hisi*字符设备节点
- 驱动模块:hisi_zip(压缩)、hisi_sec2(加密)等内核模块
- 权限控制:需设置设备权限为777以支持用户空间访问
验证命令示例:
lsmod | grep 'uacce\|hisi_sec2\|hisi_zip'1.3 用户空间层:WD库的"编程接口"
UADK提供libwd库实现统一加速接口,支持:
- 同步/异步操作模式
- 多队列管理
- 内存优化(SVA共享虚拟地址)
- 主流算法支持(SM4、GZIP等)
编译安装流程可参考项目文档uadk.md,核心环境变量配置:
export WD_CIPHER_EPOLL_EN=1 export WD_COMP_EPOLL_EN=1二、全栈加速通路:从HBase到硬件的"数据高速公路" 🛣️
2.1 软件栈架构全景图
uadk-bigdata构建了完整的技术栈,实现端到端加速:
图2:UADK大数据加速软件栈架构图,展示从HBase到硬件加速器的完整调用链
核心组件说明:
- 应用层:Apache HBase 2.5.7 / Hadoop 3.4
- JDK层:毕昇JDK 1.8.0 + JCE/KAEPProvider
- 加密层:OpenSSL 3.0+ + uadk_provider
- 加速层:UADK框架 + zlib-uadk
- 硬件层:uacce驱动 + Kunpeng 920加速器
2.2 关键技术路径:GZIP压缩加速实现
以HBase GZIP压缩为例,UADK通过zlib-uadk库实现无缝加速:
库替换:编译zlib-uadk并替换Hadoop原生zlib
g++ -shared -fPIC -O3 -I/usr/local/include/uadk -L/usr/local/lib -lwd -lwd_comp -o libzuadk.so zlib_uadk.ccHadoop配置:修改core-site.xml启用GZIP压缩
<property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec</value> </property>HBase集成:通过HBase PE测试验证性能,详细配置流程见HbasewithUADK.md
三、性能验证:HBase加速效果直观呈现 📊
3.1 延迟优化效果
在HBase PE测试中,启用UADK后随机读写延迟显著降低:
图3:不同线程数下UADK启用前后的平均延迟对比(单位:微秒)
3.2 吞吐量提升数据
随着并发线程增加,UADK加速效果更加明显,TPS/QPS提升可达3倍:
图4:不同线程数下UADK启用后的TPS/QPS表现(单位:rows/s)
测试环境说明:
- 数据集:20G/50G/100G
- 压缩算法:GZIP
- 部署模式:HBase/Hadoop伪分布式
- 硬件平台:Kunpeng 920服务器
四、快速上手:构建你的UADK加速环境 ⚡
4.1 环境准备清单
- 硬件:Kunpeng 920处理器服务器
- 系统:openEuler 24.03 LTS
- 软件:Hadoop 3.4、HBase 2.5.7、毕昇JDK 1.8.0
4.2 核心配置步骤
- 硬件使能:参考uadk.md配置BIOS和内核参数
- UADK编译:拉取代码并安装依赖
git clone https://gitcode.com/openeuler/uadk-bigdata cd uadk-bigdata - Hadoop部署:按BuildHadoopEnvironment.md配置伪分布式环境
- HBase配置:参考BuildHbaseEnvironment.md完成部署
- 性能测试:运行script/main.py执行HBase PE测试
五、总结:UADK为大数据场景带来的价值 🌟
openeuler/uadk-bigdata通过创新的全栈加速架构,为HBase等大数据应用提供了从硬件到软件的端到端优化方案。其核心价值体现在:
- 性能提升:GZIP压缩吞吐量提升3倍,延迟降低40%+
- 兼容性好:无缝对接Zlib/OpenSSL生态,应用零改造
- 成本优化:降低CPU占用率,提高硬件资源利用率
通过本文介绍的架构解析和部署指南,开发者可以快速构建UADK加速环境,充分发挥鲲鹏硬件的算力优势,为大数据应用注入性能新动力。完整技术细节可参考项目文档库中的Quick.Start.Guide.md和Performance.testing.md。
【免费下载链接】uadk-bigdataUADK is a general-purpose user space accelerator framework that uses the SVA technology to provide a unified programming interface for hardware acceleration computing cryptography and compression algorithms. Uadk-bigdata provides uadk solution in bigdata scenario.项目地址: https://gitcode.com/openeuler/uadk-bigdata
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考