OmniAdaptor:基于 Flink/Spark 生态的算子加速适配项目

OmniAdaptor is the glue layer component between OmniOperator, Spark, and Flink.

分支4Tags18
文件最后提交记录最后更新时间
表达式误识别ROW类型问题修改8 天前
clean code6 个月前
!230 Update StateAssignmentOperationTest and pom.xml22 小时前
Merge branch 'master' of https://gitcode.com/openeuler/OmniAdaptor into ctrip-sql23 天前
init8 个月前
update README.md.8 个月前

项目介绍

OmniAdaptor-Flink介绍

OmniAdaptor-Flink是Flink与OmniStream之间的桥梁组件,作为胶水层承接两者的运行时协作。OmniAdaptor-Flink基于Flink原生算子执行计划生成Native算子执行计划,将Flink原生算子替换为OmniStream的Native算子,使能OmniStream算子加速,并提供Naitve Runtime Framework,调度Native算子完成Flink任务。目前已覆盖Nexmark、wordcount等查询中主要算子的Native加速路径,同时保证了与Flink原生算子的100%兼容。

OmniAdapter-Spark介绍

OmniAdaptor-Spark是Spark与OmniOperator之间的桥梁组件,作为胶水层承接两者的运行时协作。OmniAdaptor-Spark基于Spark原生算子执行计划生成Native算子执行计划,将Flink原生算子替换为OmniOperator的Native算子,使能OmniOperator算子加速。

版本说明

当前版本适用于开源软件哪个版本,如

开源软件 开源版本
Flink 1.16.3
spark 3.3.1、3.4.3、3.5.2

快速上手

编译命令

OmniAdaptor-Flink编译命令如下

cd omnistream/omniop-flink-extension/omni-flink-bundle
mvn clean package -DskipTests

环境部署

OmniAdaptor-Flink部署请参考以下链接:

https://www.hikunpeng.com/document/detail/zh/kunpengbds/appAccelFeatures/sqlqueryaccelf/kunpengbds_omniruntime_20_09018.html

测试验证

OmniAdaptor-Flink验证前需要安装OmniStream。进入Flink安装目录下的bin目录,并启动Flink

cd $FLINK_HOME/bin/ && ./start-cluster.sh

调用sql-client后,进行测试

./sql-client.sh

在命令行中输入

SELECT 'Hello, Flink!';

可以正常输出结果即安装正常。

OmniAdapter-Spark 快速上手

编译命令

# profile_id可选3.3、3.4、3.5
export profile_id=3.3
cd omniop-spark-extension
mvn clean package -Pspark-${profile_id} -DskipTests -Ddep.os.arch=aarch64 -Dscoverage.skip=true

注:OmniAdapter-Spark编译和运行均依赖OmniOperator,若未编译部署OmniOperator,请先参考OmniOperator 相关文档进行编译部署。

环境部署

OmniAdaptor-Spark部署请参考以下链接:

https://www.hikunpeng.com/document/detail/zh/kunpengbds/appAccelFeatures/sqlqueryaccelf/kunpengbds_omniruntime_20_0212.html

测试验证

  • 测试步骤:
  1. 使用hive-testbench导入2GB TPCDS数据集
  2. 参考下面文档链接,添加omni相关配置文件,并提交sql执行
  3. 检查执行计划中的算子是否包含Omni

详细测试验证步骤请参考以下链接:

https://www.hikunpeng.com/document/detail/zh/kunpengbds/appAccelFeatures/sqlqueryaccelf/kunpengbds_omniruntime_20_0241.html

贡献指南

如果使用过程中有任何问题,或者需要反馈特性需求和bug报告,可以提交isssues联系我们,具体贡献方法可参考这里

免责声明

此代码仓计划参与Flink、Spark软件开源,仅作Flink、Spark功能扩展/Flink、Spark性能提升,编码风格遵照原生开源软件,继承原生开源软件安全设计,不破坏原生开源软件设计及编码风格和方式,软件的任何漏洞与安全问题,均由相应的上游社区根据其漏洞和安全响应机制解决。请密切关注上游社区发布的通知和版本更新。鲲鹏计算社区对软件的漏洞及安全问题不承担任何责任。

许可证书

若是参与开源,参考上游社区所用开源协议,在代码仓根目录下放置LICENSE文件。 若是主导开源,则自行决定开源协议类型,然后同样代码仓根目录下放置LICENSE文件

参考文档(可选)

OmniAdapter-Flink 安装指南:

https://www.hikunpeng.com/document/detail/zh/kunpengbds/appAccelFeatures/sqlqueryaccelf/kunpengbds_omniruntime_20_09018.html

OmniAdapter-Spark 安装文档:

https://www.hikunpeng.com/document/detail/zh/kunpengbds/appAccelFeatures/sqlqueryaccelf/kunpengbds_omniruntime_20_0212.html

开发者文档(链接) 测试指导文档(链接)

项目介绍

OmniAdaptor is the glue layer component between OmniOperator, Spark, and Flink.

定制我的领域