简介简介ApacheHudi(HadoopUpsertsDeleteandIncremental)是下一代流数据湖平台。ApacheHudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发,同时保持数据的开源文件格式。ApacheHudi不仅非常适合于流工作负载,而且还允许创建高效的增量批处理管道。ApacheHudi可以轻松地在任何云存储平台上使用。Hudi的高级性能优化,使分析工作负载更快的任何流行的查询引擎,包括ApacheSpark、Flink、Presto、Trino、Hive等。Hudi
背景2023年双11高峰之际,实时平台有一个消费Kafka写hudi的FlinkSQL类型的实时任务,每天Kafka流入的高峰时段有近350万/分钟的流入量,而任务的消费速率平均在230万/分钟左右,这导致任务写hudi遇到较严重性能瓶颈和消息积压,对业务造成影响。任务的具体积压情况如下图1所示。图1任务消费积压图(X轴是时间,单位分钟,Y轴是消息数量)针对上述情况,我们对任务进行了分析和优化,解决了此任务写hudi的性能问题,满足了高峰的要求。具体分析处理方法我们继续看。2问题排查和处理首先我们进入任务的FlinkWebUI页面,查看到任务在没有做checkpoint时的执行图,没有发现明显
一、Hudi基础能力及相关概念介绍1.1流批同源能力与Hive不同,Hudi数据在Spark/Flink写入后,下游可以继续使用Spark/Flink引擎以流读的形式实时读取数据。同一份Hudi数据源既可以批读也支持流读。Flink、Hive、Spark的流转批架构:Hudi流批同源架构:1.2COW和MOR的概念Hudi支持COW(CopyOnWrite)和MOR(MergeOnRead)两种类型:(1)COW写时拷贝:每次更新的数据都会拷贝一份新的数据版本出来,用户通过最新或者指定version的可以进行数据查询。缺点是写入的时候往往会有写内存放大的情况,优点是查询不需要合并,直接读取效率
环境说明[flink-1.13.1-bin-scala_2.11.tgz](https://archive.apache.org/dist/flink/flink-1.13.1/flink-1.13.1-bin-scala_2.11.tgz)[hadoop-2.7.3.tar.gz](https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz)[flink-cdc-connectors](https://github.com/ververica/flink-cdc-connectors)(gitc
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:https://www.captainai.net/dongkelun前言前面总结了SparkSQL增量查询Hudi表和Hive增量查询Hudi表。最近项目上也有FlinkSQL增量查询Hudi表的需求,正好学习总结一下。官网文档地址:https://hudi.apache.org/cn/docs/querying_data#incremental-query参数read.start-commit增量查询开始时间对于流读,如果不指定该值,默认取最新的instantTime,也就是流读默认从最新的i
背景本文主要是具体说说Flink中的clean操作的实现杂说闲谈在flink中主要是CleanFunction函数:@Overridepublicvoidopen(Configurationparameters)throwsException{super.open(parameters);this.writeClient=FlinkWriteClients.createWriteClient(conf,getRuntimeContext());this.executor=NonThrownExecutor.builder(LOG).waitForTasksFinish(true).build(
文章目录一、CDC入湖1.1、[开启binlog](https://blog.csdn.net/wuxintdrh/article/details/130142601)1.2、创建测试表1.2.1、创建mysql表1.2.2、将binlog日志写入kafka1、使用mysql-cdc监听binlog2、kafka作为sink表3、写入sink表1.2.3、将kakfa数据写入hudi1、kafak作为源表,flinksql消费kafka二、BulkInsert(离线批量导入)2.1、buck_insert案例2.2.1、mysqljdbc2.2.2、hudibuck_insert2.2.3、b
背景本篇主要讲解如何配置Sparkthriftserver,从而可以使用JDBC方式通过Sparkthriftserver操作Hudi表。博主的环境信息:Spark3.1.1Hive3.1.0Hadoop3.1.1Hudi0.11.1环境准备首先,我们需要编译Hudi。然后找到编译后输出的hudi-spark3.1-bundle_2.12-0.11.1.jar和hudi-hadoop-mr-bundle-0.11.1.jar,复制到$SPARK_HOME/jars中。找一台已经安装了maven的服务器。执行:gitclonehttps://github.com/apache/hudi.git源
背景本篇为Hudi概念和特性相关介绍。依据于官网和相关博客资料,融入了个人理解。内容可能会有疏漏,欢迎大家指正和补充。Hudi概念ApacheHudi是一个DataLakes的开源方案,Hudi是HadoopUpdatesandIncrementals的简写,它是由Uber开发并开源的DataLakes解决方案。Hudi具有如下基本特性/能力:Hudi能够摄入(Ingest)和管理(Manage)基于HDFS之上的大型分析数据集,主要目的是高效的减少入库延时。Hudi基于Spark/Flink/Hive来对HDFS上的数据进行更新、插入、删除等。Hudi在HDFS数据集上提供如下流原语:插入更
目录0.相关文章链接1. 去重参数2.并发参数2.1. 参数说明2.2. 案例演示3. 压缩参数3.1. 参数说明3.2. 案例演示4. 文件大小4.1. 参数说明4.2. 案例演示5. Hadoop参数Flink可配参数官网地址:AllConfigurations|ApacheHudi0.相关文章链接 Hudi文章汇总 1. 去重参数通过如下语法设置主键:--设置单个主键createtablehoodie_table(f0intprimarykeynotenforced,f1varchar(20),...)with('connector'='hudi',...)--设置联合主键createt