介绍一下什么是Apache Flink

Flink就是流批一体框架,性能杠杠的。

无界流得实时处理,顺序不能乱。
Flink靠时间控制和管理状态,保证准没错。

有界流就是批处理,顺序不重要。
Flink批处理优化得厉害,性能贼好。

部署随便用YARN、Mesos、K8 s,独立跑也行。
资源自动分,节点挂了自动换,稳得很。

状态全部放内存,用不下的部分放硬盘。
计算直接用内存里的状态,快得飞起。
挂了也能恢复数据,靠异步持久化。

说真的,这种性能和可靠性,实时场景太适合了。

保姆级教程!玩转 ChunJun 详细指南

哎,说起来 ChunJun 这款数据集成框架,那可真是挺有意思的。
2 02 2 年,我在某个城市,那时候正好负责一个大数据项目,项目里用到了 ChunJun。
当时我一看,这玩意儿支持海量数据同步与计算,静态数据、实时数据都能搞,还兼容 FlinkSQL 语法,我当时也懵了,这玩意儿怎么这么强大。

配置 ChunJun 任务嘛,有两种模式,一个是 Sync(Json)模式,一个是 SQL 模式。
Sync 模式,就是通过配置 Source 和 Sink 来实现数据的 EL 流程,底层用 StreamAPI。
比如,你配置一个 MySQL 读取源,然后配置一个 HDFS 写入目标,中间还涉及到数据还原配置,比如工作线程数、DDL 操作配置,这些都得好好琢磨。

再说说 SQL 模式,这玩意儿直接沿用 FlinkSQL 引擎,建表、视图、插入数据,一套操作下来,挺方便的。
我当时写了个建表语句,创建源表和目标表,然后同步数据,那语法跟 FlinkSQL 似的,挺顺手的。

环境准备嘛,得先下载 ChunJun,Java 版本得是 JDK8 以上,Maven 也得是 3 .6 .3 +。
下载方式有 Release 版本和源码编译,Release 版本直接从 GitHub Releases 下载预编译包,源码编译的话,得 git clone 下来,然后编译打包。

提交任务嘛,有四种模式,LocalTest、Standalone、YarnSession、YarnPerjob。
LocalTest 模式适合本地调试,Standalone 模式适合单机部署,YarnSession 模式适合 Yarn 集群部署,YarnPerjob 模式呢,即将废弃,推荐使用 Application 模式。

调试 ChunJun 代码嘛,本地调试就是修改 local-test 模块的 jobPath 指向测试脚本,直接运行主类。
远程调试的话,得配置 Flink,添加调试参数,然后在 IDE 里配置远程调试,指定主机和端口。

最后,官方文档、数据治理白皮书、产品与案例,这些资源都很丰富,用户可以快速上手 ChunJun,实现高效的数据集成与计算。
我当时用这个框架,效率提升了不少,感觉挺不错的。

Apache Flink 1.9重磅发布!首次合并阿里内部版本Blink重要功能

上周看了下Flink1 .9 的更新。
挺重要的版本。

2 02 3 年那个版本啊。
具体是1 .9
我那个朋友说,批处理作业的批式恢复功能挺好的。
之前失败要重头开始。
现在只重启故障区的task。
恢复快很多。

配置要加个参数。
flink-conf.yaml里加jobmanager.execution.failover-strategy:region。
默认有,升级要手动加。

效果是embarrassinglyparallel的作业恢复特别快。
其他的不变。

TableAPI和SQL用了Blink。
优化做得更好。
SQL支持TPC-H了。
流处理也强了点。

用的时候要注意,新旧处理器还不完全一样。
默认还是旧的。
想用新的要手动配置。

StateProcessorAPI很牛。
可以读写改状态了。
比以前的可查询状态方便多了。

WebUI用了新版Angular。
看起来不一样了。
可以切回旧的。

PythonTableAPI来了。
但UDF还不支持。
以后会加的。

跟Hive也打通了。
可以查Hive的数据了。
表也能持久化在Hive了。

这部分我不确定。
实验性的。
要再看下。
算了。