openeuler/uadk-bigdata架构详解:从硬件加速器到HBase的全栈加速通路

openeuler/uadk-bigdata架构详解:从硬件加速器到HBase的全栈加速通路

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库实现无缝加速:

  1. 库替换:编译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.cc
  2. Hadoop配置:修改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>
  3. 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 核心配置步骤

  1. 硬件使能:参考uadk.md配置BIOS和内核参数
  2. UADK编译:拉取代码并安装依赖
    git clone https://gitcode.com/openeuler/uadk-bigdata cd uadk-bigdata
  3. Hadoop部署:按BuildHadoopEnvironment.md配置伪分布式环境
  4. HBase配置:参考BuildHbaseEnvironment.md完成部署
  5. 性能测试:运行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),仅供参考