前言
总结 Flink 读写 HBase
版本
- Flink 1.15.4
- HBase 2.0.2
- Hudi 0.13.0
官方文档
https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/connectors/table/hbase/
总结 Flink 读写 HBase
https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/connectors/table/hbase/
对于Flink中各个组件(JobMaster、TaskManager、Dispatcher等),其底层RPC框架基于Akka实现,本文着重分析Flink中的Rpc框架实现机制及梳理其通信流程。
由于Flink底层Rpc是基于Akka实现,我们先了解下Akka的基本使用。
Akka是一个开发并发、容错和可伸缩应用的框架。它是Actor Model的一个实现,和Erlang的并发模型很像。在Actor模型中,所有的实体被认为是独立的actors。actors和其他actors通过发送异步消息通信。Actor模型的强大来自于异步。它也可以显式等待响应,这使得可以执行同步操作。但是,强烈不建议同步消息,因为它们限制了系统的伸缩性。每个actor有一个邮箱(mailbox),它收到的消息存储在里面。另外,每一个actor维护自身单独的状态。一个Actors网络如下所示:
more >>
Amazon CodeWhisperer 是一款 AI 编码配套应用程序,可在 IDE 中生成整行代码和完整的函数代码建议,以帮助您更快地完成更多工作。在本系列文章中,我们将为您详细介绍 Amazon CodeWhisperer 的相关信息,敬请关注!
2023年可以说是生成式 AI 正式破圈的一年。无数的工具、产品横空出世,包括面向企业的大语言模型,以及帮助个人的 AI 工具。其中,在 AI 编程助手领域,也涌现了很多不错的产品,潜移默化中改变了程序员们生产和解决问题的方式。以前,大家往往依靠搜索引擎,找到对应官网或在知名论坛寻找答案;而如今,我们仅依靠 AI 编程助手,就能解决很多问题。
亚马逊云科技就推出了一款 AI 编程助手—— Amazon CodeWhisperer,同时推出的还有供所有开发人员免费使用的个人版(CodeWhisperer Individual),能够使用您的 AI 编码配套应用程序更快、更安全地构建应用程序。亚马逊云科技在 AI 领域有足够多的积累,在面向开发者方面亦有足够多的经验、产品用户体验来反馈用户感受,并不断迭代着相关产品。同时,借助亚马逊云的强大优势和力量,能够将 AI 和云打通,这在当前云原生时代是必不可少的能力。
more >>前面的 文章 我们介绍了 StreamGraph
的生成,这个实际上只对应 Flink 作业在逻辑上的执行计划图。Flink 会进一步对 StreamGraph
进行转换,得到另一个执行计划图,即 JobGraph
。
在 StreamGraph
中,每一个算子(Operator) 对应了图中的一个节点(StreamNode)。StreamGraph
会被进一步优化,将多个符合条件的节点串联(Chain) 在一起形成一个节点,从而减少数据在不同节点之间流动所产生的序列化、反序列化、网络传输的开销。多个算子被 chain 在一起的形成的节点在 JobGraph
中对应的就是 JobVertex
。
每个 JobVertex
中包含一个或多个 Operators
。 JobVertex
的主要成员变量包括
1 | /** The ID of the vertex. */ |
和上篇文章Hudi Flink SQL源码调试学习(一)一样:本着学习hudi-flink源码的目的,利用之前总结的文章中的代码进行调试,记录调试学习过程中主要的步骤及对应源码片段。
本文主要总结 Flink 的 Transformation
、StreamOperator
, 写Hudi与 Transformation
、StreamOperator
的关系以及Hudi有哪些自定义的 StreamOperator
,还有Flink的四层执行图以及 StreamGraph
和 JobGraph
的生成构建过程。
通过阅读Hudi源码,发现写Hudi的主要逻辑在Pipelines
中的hoodieStreamWrite
、append
、bulkInsert
、compact
、cluster
等方法中。而这几个方法的主要逻辑都用到了transform
这个方法,transform
返回结果为DataStream
,执行完transform
方法后最终会执行dataStream.addSink
完成写Hudi逻辑。而transform
和addSink
方法又主要与Transformation
、StreamOperator
(StreamOperatorFactory
)这两个类有关,实际上写Hudi的主要逻辑就是在Hudi自定义的StreamOperator
和SinkFunction
中实现的。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true