首页 > 其他分享 >【创新项目探索】大数据服务omnidata-hive-connector介绍

【创新项目探索】大数据服务omnidata-hive-connector介绍

时间:2023-09-05 11:32:21浏览次数:45  
标签:数据服务 下推 hive connector 算子 omnidata 节点

omnidata-hive-connector介绍

omnidata-hive-connector是一种将大数据组件Hive的算子下推到存储节点上的服务,从而实现近数据计算,减少网络带宽,提升Hive的查询性能。目前支持Hive on Tez。omnidata-hive-connector已在openEuler社区开源。

OmniData架构

OmniData是算子下推的总称。OmniData主要由以下四个部分组成:
1.  OmniData Client属于开源的部分,为不同的引擎提供相应的插件。对于Hive引擎,omnidata-hive-connector作为OmniData Client,并通过HAF注解和编译插件能力,实现自动下推任务到存储节点的OmniData Server中。
2.  Haf Host为lib库,部署在计算节点,对外提供任务卸载的能力,把任务下推到Haf Offload。
3. Haf Offload为lib库,部署在存储节点提供任务执行的能力,用来执行OmniData Server的作业。
4. OmniData Server提供算子下推的执行能力,接收Haf Host下推下来的任务。

图片

omnidata-hive-connector功能

1.  实现将Hive的Filter、Aggregation和Limit算子下推到存储节点进行计算,提前将数据过滤,降低网络传输数据量,提升性能。

2.  实现插件化的方式注册给Hive,以松耦合的方式实现算子的下推,可通过特性开关激活或使能。

3.  实现HDFS/Ceph文件系统的下推。

4.  实现Orc/Parquet文件存储格式的下推。

5.  实现Hive内置UDF(cast、instr、length、lower、replace、substr和upper)的下推。

omnidata-hive-connector应用场景

在大数据组件Hive典型硬件配置的存算分离场景下,分别运行标准测试用例TPC-H和omnidata-hive-connector。

可以看出运行omnidata-hive-connector后,10条SQL性能平均提升40%以上

图片

omnidata-hive-connector主要优化方法

1.  基于数据选择率,做到动态的下推。

omnidata-hive-connector通过Hive统计信息计算数据选择率(选择率越低,过滤的数据量越多),通过参数设置下推的选择率阈值,omnidata-hive-connector就能够动态地将选择率低于阈值的算子推到存储节点上执行,实现存储节点在本地读取数据进行计算,再将计算过滤之后的数据集通过网络返回到计算节点,提升网络传输效率,优化性能。除了数据选择率,还会根据算子是否支持,剩余资源是否足够等条件进行判断。

图片

2.  Filter的部分下推。

当一个Filter中同时存在支持下推和不支持下推的算子时,omnidata-hive-connector对不支持的算子构造成新的Filter走原生Hive计算流程,对支持下推的算子重新计算数据选择率并根据新的选择率判断是否下推。

图片

3.  存算协同,合理利用计算资源。

omnidata-hive-connector将算子下推到存储节点执行计算,可以有效地降低计算节点的CPU使用率,并且能将存储节点的CPU使用起来,提升总体计算效率。以TPC-H的SQL为例,优化前计算节点CPU平均使用率60%以上,优化后,计算节点CPU平均使用率在40%左右。

图片

图片

4.  提前过滤数据,减少网络传输。  

数据的提前过滤是omnidata-hive-connector性能收益的主要来源,在存储节点过滤数据,减少网络传输,减少计算节点处理的数据量。

以TPC-H的SQL为例,SQL中含有多个Filter,优化前的算子需要跨网络从远端存储节点读取近60亿行的数据;优化后只需要传输过滤后的有效数据4000万行。执行效率提升60%以上。

图片

omnidata-hive-connector后续规划

本项目已开源在openEuler社区,omnidata-hive-connector特性会积极地支持新功能,后续规划如下:

1. 支持timestamp和decimal数据格式。

2. 支持BloomFilter算子的下推。

3. 支持用户自定义函数的下推。

代码地址:

https://gitee.com/openeuler/omnidata-hive-connector

欢迎感兴趣的朋友们参与到openEuler Bigdata SIG,探讨大数据领域技术。

标签:数据服务,下推,hive,connector,算子,omnidata,节点
From: https://blog.51cto.com/u_14948868/7370031

相关文章

  • 33、Flink之hive介绍与简单示例
    文章目录Flink系列文章一、Table&SQLConnectors示例:ApacheHive1、支持的Hive版本2、依赖项1)、使用Flink提供的Hivejar2)、用户定义的依赖项3)、移动plannerjar包3、Maven依赖4、连接到Hive5、DDL&DML本文介绍了ApacheHive连接器的使用,以具体的示例演示了通过java和......
  • 大数据实战-Hive-技巧实战_2LgaeiFwLs7mCTwG5T3c9M
    大数据实战-Hive-技巧实战_2LgaeiFwLs7mCTwG5T3c9M大数据实战-Hive-技巧实战1.union和unionall前者可以去重selectsex,addressfromtestwheredt='20210218'unionallselectsex,addressfromtestwheredt='20210218';+------+----------+--+|sex|address|......
  • 解决hive数据库的修改删除等更新语句问题
    Hive对使用Update功能的表有特定的语法要求,语法要求如下:(1)要执行Update的表中,建表时必须带有buckets(分桶)属性(2)要执行Update的表中,需要指定格式,其余格式目前赞不支持,如:parquet格式,目前只支持ORCFileformat和AcidOutputFormat(3)要执行Update的表中,建表时必......
  • Hive SQL如何获取(YYYYMM)格式年月的前1个月
    如果当前年月为202301,前一个月就是202212,使用如下SQL可以将年月字段(YYYYMM格式)向前平移1个月:date_format(add_months(from_unixtime(unix_timestamp(concat(年月字段,'01'),'yyyyMMdd'),'yyyy-MM-dd'),-1),'yyyyMM')参考截图: ......
  • hive客户端启动
    1.sart-all.sh 2.3.实现在其他虚拟机访问客户端scp-r/export/server/apache-hive-3.1.2-binroot@node3:/export/server/4.在node3上面输入:/export/server/apache-hive-3.1.2-bin/bin/hive以下状态就成功使用第一代客户端连接到了hive服务了 5.在node3上输入:/expor......
  • 16、Flink 的table api与sql之连接外部系统_ 读写外部系统的连接器和格式以及Apache H
    (文章目录)本文介绍了ApacheHive连接器的使用,以具体的示例演示了通过java和flinksqlcli创建catalog。本文依赖环境是hadoop、zookeeper、hive、flink环境好用,本文内容以flink1.17版本进行介绍的,具体示例是在1.13版本中运行的(因为hadoop集群环境是基于jdk8的,flink1.17版本需......
  • hive-四种排序
    数据准备200832.0200821.0200831.5200817.0201334.0201532.0201533.0201515.9201531.0201519.9201527.0201623.0201639.9201632.0建表createtableods_temperature(yearint,......
  • 农业全要素生产率的计算(使用HiveQL分析)
    需求:工作中需要计算农业全要素生产率数据,需要利用HiveQL进行数据仓库提取,然后进行转换式计算,最后需要进行要素生产效率分析,用于后续的深度数据挖掘。解决:CREATETABLEIFNOTEXISTSmytable( col1STRING, col2INT, col3DOUBLE)ROWFORMATDELIMITEDFIELDSTERMIN......
  • hive函数
    运算函数1、取整函数:round语法:round(doublea)返回值:BIGINT说明:返回double类型的整数值部分(遵循四舍五入)hive>selectround(3.1415926)fromiteblog;3hive>selectround(3.5)fromiteblog;4hive>createtableiteblogasselectround(9542.158)from......
  • 技术实践|Hive数据迁移干货分享
    导语Hive是基于Hadoop构建的一套数据仓库分析系统,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能。它的优点是可以通过类SQL语句快速实现简单的MapReduce统计,不用再开发专门的MapReduce应用程序,从而降低学习成本,十分适合对数据仓库进行统计分析。 近几年,随......