Hudi(三)集成Flink(1)

【实战-06】如何正确设置flink参数,全网最全 设置flink参数, yarn.provided.usrlib.dir yarn.provided.lib.dirs 阅读详情

 1、环境准备

        将编译好的jar包放到Flink的lib目录下。

cp hudi-flink1.13-bundle-0.12.0.jar /opt/module/flink-1.13.2/lib

2、sql-client方式

2.1、修改flink-conf.yaml配置

vim /opt/module/flink-1.13.2/conf/flink-conf.yaml

state.backend: rocksdb
execution.checkpointing.interval: 30000
state.checkpoints.dir: hdfs://hadoop1:9000/ckps
state.backend.incremental: true

2.2、yarn-session模式启动

1、启动

1、先启动hadoop集群,然后通过yarn-session启动flink:
/opt/module/flink-1.13.2/bin/yarn-session.sh -d
2、再启动sql-client
/opt/module/flink-1.13.2/bin/sql-client.sh embedded -s yarn-session

2、写入数据

表格模式(table mode)在内存中实体化结果,并将结果用规则的分页表格可视化展示出来。执行如下命令启用:
SET 'sql-client.execution.result-mode' = 'table'; --默认

变更日志模式(changelog mode)不会实体化和可视化结果,而是由插入(+)和撤销(-)组成的持续查询产生结果流。
SET 'sql-client.execution.result-mode' = 'changelog';

Tableau模式(tableau mode)更接近传统的数据库,会将执行的结果以制表的形式直接打在屏幕之上。具体显示的内容会取决于作业执行模式的不同(execution.type):
SET 'sql-client.execution.result-mode' = 'tableau';

-- 创建hudi表
CREATE TABLE t1(
  uuid VARCHAR(20) PRIMARY KEY NOT ENFORCED,
  name VARCHAR(10),
  age INT,
  ts TIMESTAMP(3),
  `partition` VARCHAR(20)
)
PARTITIONED BY (`partition`)
WITH (
  'connector' = 'hudi',
  'path' = 'hdfs://hadoop1:9000/tmp/hudi_flink/t1',   --hudi表的基本路径
  'table.type' = 'MERGE_ON_READ'   --默认是COW
);

-- 插入数据
INSERT INTO t1 VALUES
  ('id1','Danny',23,TIMESTAMP '1970-01-01 00:00:01','par1'),
  ('id2','Stephen',33,TIMESTAMP '1970-01-01 00:00:02','par1'),
  ('id3','Julian',53,TIMESTAMP '1970-01-01 00:00:03','par2'),
  ('id4','Fabian',31,TIMESTAMP '1970-01-01 00:00:04','par2'),
  ('id5','Sophia',18,TIMESTAMP '1970-01-01 00:00:05','par3'),
  ('id6','Emma',20,TIMESTAMP '1970-01-01 00:00:06','par3'),
  ('id7','Bob',44,TIMESTAMP '1970-01-01 00:00:07','par4'),
  ('id8','Han',56,TIMESTAMP '1970-01-01 00:00:08','par4');

3、IDEA编码方式

3.1、环境准备

1、手动install依赖

mvn install:install-file -DgroupId=org.apache.hudi -DartifactId=hudi-flink_2.11 -Dversion=0.12.0 -Dpackaging=jar -Dfile=./hudi-flink1.13-bundle-0.12.0.jar

2、编写代码

import org.apache.flink.contrib.streaming.state.{EmbeddedRocksDBStateBackend, PredefinedOptions}
import org.apache.flink.streaming.api.CheckpointingMode
import org.apache.flink.streaming.api.environment.{CheckpointConfig, StreamExecutionEnvironment}
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment

import java.util.concurrent.TimeUnit



object HudiExample {
  def main(args: Array[String]): Unit = {

    // val env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration())
    val env = StreamExecutionEnvironment.getExecutionEnvironment

    // 设置状态后端RocksDB
    val embeddedRocksDBStateBackend = new EmbeddedRocksDBStateBackend(true)

    //  embeddedRocksDBStateBackend.setDbStoragePath("file:///E:/rocksdb")
    embeddedRocksDBStateBackend.setPredefinedOptions(PredefinedOptions.SPINNING_DISK_OPTIMIZED_HIGH_MEM)
    env.setStateBackend(embeddedRocksDBStateBackend)
    // checkpoint配置
    env.enableCheckpointing(TimeUnit.SECONDS.toMillis(10), CheckpointingMode.EXACTLY_ONCE)
    val checkpointConfig = env.getCheckpointConfig
    checkpointConfig.setCheckpointStorage("hdfs://hadoop1:9000/ckps")
    checkpointConfig.setMinPauseBetweenCheckpoints(TimeUnit.SECONDS.toMillis(10))
    checkpointConfig.setTolerableCheckpointFailureNumber(5)
    checkpointConfig.setCheckpointTimeout(TimeUnit.MINUTES.toMillis(1))
    checkpointConfig.enableExternalizedCheckpoints(CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION)
    val sTableEnv = StreamTableEnvironment.create(env)
    sTableEnv.executeSql("CREATE TABLE sourceT (\n" +
      "  uuid varchar(20),\n" +
      "  name varchar(10),\n" +
      "  age int,\n" + "  ts timestamp(3),\n" +
      "  `partition` varchar(20)\n" +
      ") WITH (\n" +
      "  'connector' = 'datagen',\n" +
      "  'rows-per-second' = '1'\n" +
      ")")
    sTableEnv.executeSql("create table t2(\n" +
      "  uuid varchar(20),\n" +
      "  name varchar(10),\n" +
      "  age int,\n" +
      "  ts timestamp(3),\n" +
      "  `partition` varchar(20)\n" +
      ")\n" +
      "with (\n" +
      "  'connector' = 'hudi',\n" +
      "  'path' = 'hdfs://hadoop1:9000/tmp/hudi_flink/t2',\n" +
      "  'table.type' = 'MERGE_ON_READ'\n" +
      ")")
    sTableEnv.executeSql("insert into t2 select * from sourceT")
  }
}

3、提交运行

bin/flink run -t yarn-per-job -c com.my.example.HudiExample ./myjars/HudiExample-1.0-SNAPSHOT-jar-with-dependencies.jar

4、核心参数设置

        Flink可配参数:https://hudi.apache.org/docs/configurations#FLINK_SQL

4.1、去重参数

        通过如下语法设置主键:

-- 设置单个主键
create table hoodie_table (
  f0 int primary key not enforced,
  f1 varchar(20),
  ...
) with (
  'connector' = 'hudi',
  ...
)

-- 设置联合主键
create table hoodie_table (
  f0 int,
  f1 varchar(20),
  ...
  primary key(f0, f1) not enforced
) with (
  'connector' = 'hudi',
  ...
)

名称

说明

默认值

备注

hoodie.datasource.write.recordkey.field

主键字段

--

支持主键语法 PRIMARY KEY 设置,支持逗号分隔的多个字段

precombine.field

(0.13.0 之前版本为

 write.precombine.field)

去重时间字段

--

record 合并的时候会按照该字段排序,选值较大的 record 为合并结果;不指定则为处理序:选择后到的 record

4.2、并发参数

名称

说明

默认值

备注

write.tasks

writer 的并发,每个 writer 顺序写 1~N 个 buckets

4

增加并发对小文件个数没影响

write.bucket_assign.tasks

bucket assigner 的并发

Flink的并行度

增加并发同时增加了并发写的 bucekt 数,也就变相增加了小文件(小 bucket) 数

write.index_bootstrap.tasks

Index bootstrap 算子的并发,增加并发可以加快 bootstrap 阶段的效率,bootstrap 阶段会阻塞 checkpoint,因此需要设置多一些的 checkpoint 失败容忍次数

Flink的并行度

只在 index.bootstrap.enabled 为 true 时生效

read.tasks

读算子的并发(batch 和 stream)

4

compaction.tasks

online compaction 算子的并发

writer 的并发

online compaction 比较耗费资源,建议走 offline compaction

案例演示

可以flink建表时在with中指定,或Hints临时指定参数的方式:在需要调整的表名后面加上 /*+ OPTIONS() */

CREATE TABLE sourceT (
  uuid varchar(20),
  name varchar(10),
  age int,
  ts timestamp(3),
  `partition` varchar(20)
) WITH (
  'connector' = 'datagen',
  'rows-per-second' = '1'
);

create table t2(
  uuid varchar(20),
  name varchar(10),
  age int,
  ts timestamp(3),
  `partition` varchar(20)
)
with (
  'connector' = 'hudi',
  'path' = '/tmp/hudi_flink/t2',
  'table.type' = 'MERGE_ON_READ'
);

insert into t2 /*+ OPTIONS('write.tasks'='2','write.bucket_assign.tasks'='3','compaction.tasks'='4') */ 
select * from sourceT;

执行如下图所示:

4.3、压缩参数

1、参数说明

        在线压缩的参数,通过设置 compaction.async.enabled =false关闭在线压缩执行,但是调度compaction.schedule.enabled 仍然建议开启,之后通过离线压缩直接执行 在线压缩任务 阶段性调度的压缩 plan。

名称

说明

默认值

备注

compaction.schedule.enabled

是否阶段性生成压缩 plan

true

建议开启,即使compaction.async.enabled 关闭的情况下

compaction.async.enabled

是否开启异步压缩

true

通过关闭此参数关闭在线压缩

compaction.tasks

压缩 task 并发

4

compaction.trigger.strategy

压缩策略

num_commits

支持四种策略:num_commits、time_elapsed、num_and_time、

num_or_time

compaction.delta_commits

默认策略,5 个 commits 压缩一次

5

compaction.delta_seconds

3600

compaction.max_memory

压缩去重的 hash map 可用内存

100(MB)

资源够用的话建议调整到 1GB

compaction.target_io

每个压缩 plan 的 IO 上限,默认 5GB

500(GB)

2、案例演示

CREATE TABLE t3(
  uuid VARCHAR(20) PRIMARY KEY NOT ENFORCED,
  name VARCHAR(10),
  age INT,
  ts TIMESTAMP(3),
  `partition` VARCHAR(20)
)
WITH (
  'connector' = 'hudi',
  'path' = '/tmp/hudi_flink/t3',
  'compaction.async.enabled' = 'true',
  'compaction.tasks' = '1',
  'compaction.schedule.enabled' = 'true',
  'compaction.trigger.strategy' = 'num_commits',
  'compaction.delta_commits' = '2',
  'table.type' = 'MERGE_ON_READ'
);

set table.dynamic-table-options.enabled=true;
insert into t3
select * from sourceT/*+ OPTIONS('rows-per-second' = '5')*/;

4.4、文件大小

1、参数说明

        Hudi会自管理文件大小,避免向查询引擎暴露小文件,其中自动处理文件大小起很大作用。在进行insert/upsert操作时,Hudi可以将文件大小维护在一个指定文件大小。

        目前只有log文件的写入大小可以做到精确控制,parquet 文件大小按照估算值。

名称

说明

默认值

备注

hoodie.parquet.max.file.size

最大可写入的 parquet 文件大小

120 * 1024 * 1024

默认 120MB

(单位 byte)

超过该大小切新的 file group

hoodie.logfile.to.parquet.compression.ratio

log文件大小转 parquet 的比率

0.35

hoodie统一依据 parquet 大小来评估小文件策略

hoodie.parquet.small.file.limit

在写入时,hudi 会尝试先追加写已存小文件,该参数设置了小文件的大小阈值,小于该参数的文件被认为是小文件

104857600

默认 100MB

(单位 byte)

大于 100MB,小于 120MB 的文件会被忽略,避免写过度放大

hoodie.copyonwrite.record.size.estimate

预估的record大小,hoodie 会依据历史的commits动态估算record的大小,但是前提是之前有单次写入超过

hoodie.parquet.small.file.limit大小,在未达到这个大小时会使用这个参数

1024

默认 1KB

(单位 byte)

如果作业流量比较小,可以设置下这个参数

hoodie.logfile.max.size

LogFile最大大小。这是在将Log滚转到下一个版本之前允许的最大大小。

1073741824

默认1GB

(单位 byte)

5、内存优化 

5.1、内存参数

名称

说明

默认值

备注

write.task.max.size

一个 write task 的最大可用内存

1024

当前预留给 write buffer 的内存为

write.task.max.size -compaction.max_memory

当 write task 的内存 buffer达到阈值后会将内存里最大的 buffer flush 出去

write.batch.size

Flink 的写 task 为了提高写数据效率,会按照写 bucket 提前 buffer 数据,每个 bucket 的数据在内存达到阈值之前会一直 cache 在内存中,当阈值达到会把数据 buffer 传递给 hoodie 的 writer 执行写操作

256

一般不用设置,保持默认值就好

write.log_block.size

hoodie 的 log writer 在收到 write task 的数据后不会马上 flush 数据,writer 是以 LogBlock 为单位往磁盘刷数据的,在 LogBlock 攒够之前 records 会以序列化字节的形式 buffer 在 writer 内部

128

一般不用设置,保持默认值就好

write.merge.max_memory

hoodie 在 COW 写操作的时候,会有增量数据和 base file 数据 merge 的过程,增量的数据会缓存在内存的 map 结构里,这个 map 是可 spill 的,这个参数控制了 map 可以使用的堆内存大小

100

一般不用设置,保持默认值就好

compaction.max_memory

同 write.merge.max_memory: 100MB 类似,只是发生在压缩时。

100

如果是 online compaction,资源充足时可以开大些,比如 1GB

5.2、MOR

(1)state backend 换成 rocksdb (默认的 in-memory state-backend 非常吃内存)

(2)内存够的话,compaction.max_memory 调大些 (默认是 100MB 可以调到 1GB)

(3)关注 TM 分配给每个 write task 的内存,保证每个 write task 能够分配到 write.task.max.size 所配置的大小,比如 TM 的内存是 4GB 跑了 2 个 StreamWriteFunction 那每个 write function 能分到 2GB,尽量预留一些 buffer,因为网络 buffer,TM 上其他类型 task (比如 BucketAssignFunction 也会吃些内存)

(4)需要关注 compaction 的内存变化,compaction.max_memory 控制了每个 compaction task 读 log 时可以利用的内存大小,compaction.tasks 控制了 compaction task 的并发

        注意: write.task.max.size - compaction.max_memory 是预留给每个 write task 的内存 buffer

5.3、COW

(1)state backend 换成 rocksdb(默认的 in-memory state-backend 非常吃内存)。

(2)write.task.max.size 和 write.merge.max_memory 同时调大(默认是 1GB 和 100MB 可以调到 2GB 和 1GB)。

(3)关注 TM 分配给每个 write task 的内存,保证每个 write task 能够分配到 write.task.max.size 所配置的大小,比如 TM 的内存是 4GB 跑了 2 个 StreamWriteFunction 那每个 write function 能分到 2GB,尽量预留一些 buffer,因为网络 buffer,TM 上其他类型 task(比如 BucketAssignFunction 也会吃些内存)。

        注意:write.task.max.size - write.merge.max_memory 是预留给每个 write task 的内存 buffer。

从0到1搭建数据湖Hudi环境 一、目标 在本地构建可以跑Flink-Hudi、Spark-Hudi等demo的环境,本地环境是arm64架构的M1芯片,所以比较特殊,如果采用Hudi官网的docker搭建,目前不支持,本人也在Hudi的github上提过此类需求,虽得到了响应,但还是在部署的时候会出问题,然后基于其实Hudi就是一种对存储格式的管理模式,此格式可以是HDFS,也可以是各大云厂商的文件存储系统,例如阿里云的OSS,华为云的OBS等,都是可以支持的,所以本地只需要部署一套Hadoop架构就可以跑起来相关的案... 阅读详情

相关推荐

Flink SQL操作Hudi并同步Hive使用总结

记录总结自己第一次如何使用Flink SQL读写Hudi并同步Hive,以及遇到的问题及解决过程。关于Flink SQL客户端如何使用可以参考:Flink SQL 客户端查询Hive配置及问题解决Flink 1.14.3 Hudi 0.12.0/0.12.1本文采用Flink yarn-session模式,不会的可以参考之前的文章。下载地址:https://repo1.maven.org/maven2/org/apache/hudi/hudi-flink1.14-bundle/0.12.1/hudi-fli

主要分享大数据相关的知识,如Spark、Hudi 7823

【Hudi】设置复合主键

【代码】【Hudi】设置复合主键。

JH_Zhai的博客 723

【flink】RocksDB介绍以及Flink对RocksDB的支持

1.概述 转载:「Flink」RocksDB介绍以及Flink对RocksDB的支持 2.RocksDB简介 RocksDB是基于C++语言编写的嵌入式KV存储引擎,它不是一个分布式的DB,而是一个高效、高性能、单点的数据库引擎。它是由Facebook基于Google开源的kv存储LevelDB开发开发。RocksDB使用LSM存储引擎。它针对不同的生产环境进行调优,可以直接使用内存、也可以使用Flash、或者用硬盘或者HDFS。而且支持不同的压缩算法,有一整套的工具用于生产、调试使用。RocksDB是一种

九师兄 4580

Flink State Backends

flink状态后端

qq_20671779的博客 2849

Flink SQL通过Hudi HMS Catalog读写Hudi并同步Hive表(强烈推荐这种方式)

上篇文章Flink SQL操作Hudi并同步Hive使用总结总结了如何使用Flink SQL读写Hudi并同步Hive,介绍了创建表的各种方式,但是每一种方式都不太完美。本文介绍一种比较完美的方式,通过Hudi HMS Catalog读写Hudi并同步Hive表,这里的Hudi HMS Catalog实际上就是通过上篇文章最后提到的。

主要分享大数据相关的知识,如Spark、Hudi 4425

hudi-flink1.14-bundle_2.12-0.11.0.jar

hudi-flink1.14-bundle_2.12-0.11.0.jar

Huid学习七:Hudi与Flink集成

Hudi与Flink的集成

NC_NE的博客 4542

Conda报错急救指南:遇到Malformed version string ‘~‘怎么办?(附最新解决方案)

本文深度解析Conda报错`Malformed version string '~'`的根源与解决方案。该错误通常由版本字符串解析异常或Conda版本过旧引起。文章提供了从清理缓存、针对性升级到环境重建的完整修复流程,并强调了升级Conda至最新版本是解决此类`CondaValueError`问题的根本方法,帮助开发者高效恢复工作环境。

weixin_28835789的博客 651

Hudi 数据湖技术之集成Flink

目录 1 安装Flink 2 快速入门 2.1 集成Flink概述 2.2 环境准备 2.3 创建表 2.4 插入数据 2.5 查询数据 2.6 更新数据 3 Streaming query 3.1 创建表 3.2 查询数据 3.3 插入数据 4 Flink SQL Writer 4.1 Flink SQL集成Kafka 4.2 Flink SQL写入Hudi 4.2.1 创建Maven Module 4.2.2 消费Kafka数据 4.2.3 保存数据至Hudi 4.2.4 加载Hudi表数据

赵广陆 2191

解决com.kingbase8.util.KSQLException: This _connection has been closed.

一个消息管理系统,系统采用kingbase8数据库,数据库采用单体模式,后台应用也采用springboot单体模式。系统正式上线后,出现几个JDBC响应的异常信息: com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend. java.net.SocketTimeoutException: Read timed out.

qq_38127559的博客 2757

智能体评测技术与实践:从评估维度到DeepEval实战指南

智能体评测技术与实践:从评估维度到DeepEval实战指南 本文系统探讨了AI智能体的评测体系与实践方法。首先从四个关键维度构建评估框架:基础能力(意图理解、知识完整性)、复杂任务(多轮对话、动态工作流)、可靠性(幻觉抑制、安全合规)以及工具效率(参数填充、多工具协同)。其次分析了主流评测工具,包括xBench的动态双轨评估、DeepEval的全链路监控等解决方案。最后详细介绍了DeepEval的实战应用,涵盖环境配置、测试用例构建、指标配置及CI/CD集成,展示了如何通过代码化评估实现智能体质量的持续提升

Linda的自动化测试之旅 3420

数据湖技术之 Hudi 集成 Flink

Flink集成Hudi时,本质将集成jar包:hudi-flink-bundle_2.12-0.9.0.jar,放入Flink 应用CLASSPATH下即可。Flink SQLConnector支持Hudi作为Source和Sink时,两种方式将jar包放入CLASSPATH路径:● 方式一:运行Flink SQL Client命令行时,通过参数【-j xx.jar】指定jar包● 方式二:将jar包直接放入Flink软件安装包lib目录下【$FLINK_HOME/lib】

数字人生 1644

AIDL HAL服务从零到一:构建现代Android硬件抽象层

本文详细介绍了从零开始构建现代Android AIDL HAL服务的完整流程。通过定义接口、实现服务逻辑、配置构建与VINTF清单,并最终集成到系统镜像,开发者可以掌握利用AIDL替代传统HIDL来开发硬件抽象层的核心方法。文章重点解析了AIDL HAL的创建流程,并对比了其与HIDL在语法、工具链和集成方式上的优势,帮助开发者高效构建稳定的硬件接口。

weixin_29174141的博客 145

Hudi集成Flink及示例

文章目录环境准备安装Maven编译Hudi安装Flink 环境准备 在编译Hudi之前,要保证自己的机器上搭建了Hadoop集群、Hive。 安装Maven Maven的版本选择的是3.5.4,可以根据自己的需求选择 官网地址: https://maven.apache.org/download.cgi 将apache-maven-3.5.4-bin.tar.gz上传到linux的/opt/software目录下 解压apache-maven-3.5.4-bin.tar.gz到/opt/module/目录

番茄炒蛋三分糖 2516

YOLO26全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1034

NVIDIA Jetson之远程控制软件NoMachine安装使用

参考:https://www.bilibili.com/video/BV1cg4y1i776?t=12 0 背景

ZONGXP的博客 1万+

Hudi-集成Flink(Flink操作hudi表)

一、安装部署Flink 1.12 Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。 1.准备tar包 flink-1.13.1-bin-scala_2.12.tgz 2.解压 tar -zxvf flink-1.13.1-bin-scala_2.12.tgz 3.添...

qq_38304392的博客 2055

以宠辱之戒写 SAP Fiori Elements,把标准能力当成身体,把扩展冲动当成大患

SAP Fiori Elements开发中常面临业务方追求"独特页面"的压力,但过度自定义会破坏框架价值。老子"宠辱若惊"的智慧提醒开发者:不应因用户称赞或批评而动摇架构原则。标准模板的价值在于确保业务语义、交互规范和后端服务的一致性。扩展应遵循官方API,将业务逻辑放在ABAP/CDS层而非前端控制器。成熟项目会平衡标准与定制,使用annotation表达UI行为,仅在必要时通过受支持的extension points进行增强,保持系统的长期可维护性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 999

FLINK集成HUDI实战

1.说明 1.环境依赖 flink版本:flink-1.13.0 flink-cdc版本:2.1.0 hudi版本:2.11-0.10.0 hive版本:3.1.0 2.使用过程中FLINK中的包 3.过程记录 注意 1.我这里读取的是Oracle的实时数据,所以需要开通Oracle的附加日志 2.hudi目前需要自己去编译,也可以在社区中找你想要的包或者直接下载HUDI包下载 3.cdc我这边因为读取的是Oracle所以用的是2.1.0,cdc版本和flink版本对比 开搞 1.启动flin

weixin_43943806的博客 2689

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Apache Hudi与Apache Flink集成

Apache Hudi是由Uber开发并开源的数据湖框架,它于2019年1月进入Apache孵化器孵化,次年5月份顺利毕业晋升为Apache顶级项目。是当前最为热门的数据湖框架之一。 1. 为何要解耦 Hudi自诞生至今一直使用Spark作为其数据处理引擎。如果用户想使用Hudi作为其数据湖框架,就必须在其平台技术栈中引入Spark。放在几年前,使用Spark作为大数据处理引擎可以说是很平常甚至是理所当然的事。因为Spark既可以进行批处理也可以使用微批模拟流,流批一体,一套引擎解决流、批问题。然而,近年来

xleesf 1264

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

05_Hudi 集成 Flink、Streaming query、Flink SQL Writer、Flink SQL集成Kafka、Flink SQL写入Hudi、消费Kafka数据等

本文来自"黑马程序员"hudi课程5.第五章 Hudi 集成 Flink 5.1 安装Flink 1.12 5.2 快速入门 5.2.1 集成Flink概述 5.2.2 环境准备 5.2.3 创建表 5.2.4 插入数据 5.2.5 查询数据 5.2.6 更新数据 5.3 Streaming query 5.3.1 创建表 5.3.2 查询数据 5.3.3 插入数据 5.4 Flink SQL Writer 5.4.1 Flink SQL集成Kafka 5.4.2 Flink SQL写入Hudi 5.4.2

涂作权的博客 1299

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数据湖架构Hudi(五)Hudi集成Flink案例详解

数据湖架构Hudi(五)Hudi集成Flink案例详解

qq_44665283的博客 4540

Flink-1.13集成hudi-0.10.0

把hudi的 hudi-flink-bundle_2.12-0.10.0.jar放到 flink的lib下即可从flink-sql客户端读写hudi表。 下面是完全参考hudi官网的示例 一、下载安装flink本地集群,并将hudi的 hudi-flink-bundle_2.12-0.10.0.jar放到 flink的lib下。 1.解压 tar -zxvf flink-1.13.3-bin-scala_2.12.tgz mv flink-1.13.3-bin-scala_2.12 flin.

shy_snow的专栏 2577

Apache Flink 集成 Apache Hudi 快速入门指南

摘要:本文由阿里巴巴的陈玉兆分享,主要介绍 Flink 集成 Hudi 的最新版本功能以及快速上手实践指南。内容包括:背景环境准备Batch 模式的读写Streaming 读总结一、背景...

过往记忆大数据 2161

Hudi on Flink 快速上手指南

摘要:本文由阿里巴巴的陈玉兆分享,主要介绍 Flink 集成 Hudi 的最新版本功能以及快速上手实践指南。内容包括:背景环境准备Batch 模式的读写Streaming 读总结Tips:...

Ververica的博客 3356
上一篇: StarRocks与ClickHouse
下一篇: Hudi(四)集成Flink(2)
Yuan_CSDF
博客等级 码龄10年 169粉丝 130原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值