其他分享
首页 > 其他分享> > 1、Flink Contributor之路

1、Flink Contributor之路

作者:互联网

目录

【Connector】

1、增加 MQTT source & sink

【Deployment/Kubernetes】

1、non-HA 模式下去除 k8s internal service

【Deployment/Yarn】

1、on Yarn 支持上传的资源来自于本地或者hdfs

2、通过匹配前缀的方式覆盖 hadoop 配置

【CLI】

1、flink help 提示信息缺少 run-application 

2、run-application 提示信息缺少 yarn-application


【Connector】

1、增加 MQTT source & sink

背景:

诉求:

issue: BAHIR-212

进展:并未贡献给 Flink 而是贡献给了 Bahir,但是该项目好像停滞了,代码待review。

 

【Deployment/Kubernetes】

1、non-HA 模式下去除 k8s internal service

背景:HA 模式下,TM 直接通过 JM podIP与之通信,在 JM failover 时通过 zk,TM 可发现新的 JM 进行注册并之通信。non-HA 模式下,TM 则通过 k8s internal service 与 JM 通信,这个服务发现功能是 k8s 特有的,Flink 社区希望通过这个服务发现能够在 JM failover 后,原先的 TM 依然能够被新的 JM 复用从而避免重新启动等数量的 TM。

诉求:non-HA 模式下,在实际使用上 k8s internal service 并非能够达到使旧 TM 重新连接并被新 JM 复用的预期效果,这是因为当 JM failover 之后,旧 TM 能否连上新 JM 还取决于作业启动的速度和旧 TM 重新注册的速度,而且目前旧 TM 注册时并不会被新 JM 接纳,因此,k8s internal service 可以剔除,这样有几个好处:(1)提交作业时减少一个组件的创建,可以降低资源开销,尽管这部分资源可以忽略不计;(2)提高作业运行的稳定性。

issue: FLINK-20249

issue: 由上面的 issue 引出的新的问题 FLINK-20332

进展:只有在新 issue(FLINK-20332) 解决的前提下,internal service 才能发挥作用,否则没有实质收益。目前我给出的建议是:可以增加一个配置项: kubernetes.internal-serviece.enable,true 则复用旧 TM(新的issue解决的前提下),false 则启动等数量的 TM(这样可以yarn的行为保持一致)。但是社区未再回应。

 

【Deployment/Yarn】

1、on Yarn 支持上传的资源来自于本地或者hdfs

背景:Application 模式下(Flink 1.10 新增) 提交 flink 作业到 yarn, 支持 ship 文件到 HDFS 并添加到容器的 classpath 中, 其中文件包括特定格式的压缩文件、普通的文件及目录。

诉求:支持 ship 的文件不仅可以来自于本地,也可以来自于分布式文件系统,这样可以避免文件从本地上传到 hdfs 所带来的开销,从而加快作业的启动。

issue: FLINK-20681

进展: 社区采纳并将该 issue 分配给我,代码待review。

2、通过匹配前缀的方式覆盖 hadoop 配置

背景:flink 提交作业到 yarn,有时需要覆盖集群中设置的 hadoop 配置,但是 1.12 之前并不支持或者通过扩展 flink 配置进行部分支持。

诉求:参考 spark 的方案,通过匹配'flink.hadoop.'前缀的方式将配置项设置到 hadoop configuration 中。

issue: FLINK-20682 & FLINK-16005

进展:社区采纳并将该 issue 分配给我,代码待review。

 

【CLI】

1、flink help 提示信息缺少 run-application 

背景:flink 1.12 支持 6 种 action: run、run-application、list、info、savepoint、stop、cancel,flink cli 输入其他 action 会有提示信息。

诉求:提示信息缺少 run-application。

issue: FLINK-20686

进展:社区采纳并将该 issue 分配给我,代码已合入。

2、run-application 提示信息缺少 yarn-application

背景:run-application 模式下支持两种 target: yarn-application、kubernetes-application。

诉求:在未设置 hadoop_classpath的情况下,提示信息缺少 yarn-application。我们认为提示信息应与环境无关,因此需要给出 yarn-application。

issue: FLINK-20687

进展:给出了三点应该输出yarn-application的原因,社区未再回应。

 

 

标签:JM,Flink,之路,yarn,application,TM,提示信息,Contributor,issue
来源: https://blog.csdn.net/jiang7chengzi/article/details/109015725