flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From TsingJyujing <tsingjyuj...@163.com>
Subject Re:flink任务 动态更新(热部署) 问题请教
Date Wed, 13 Mar 2019 07:06:04 GMT
Mailing List 是不能发图的


热部署是不可能热部署的,这辈子不可能热部署。
要是动态修改配置,DAG又不会改。
只有修改修改配置文件和代码,然后重新Deploy才能维持得了新业务这样子……


我们现在的解决方法是,启动的时候从Consul KV 动态读取 Table 的一些配置。
以Sink为例,你需要定义表结构(字段和类型,以及表名),还需要定义Append和Retract的时候做什么操作。
以Source为例的话,你要定义来源数据格式,和如何生成指定的表。
如果有套路的话(比如都是JSON类型的Source或者写入JDBC的Sink),可以做到修改配置,重启就生效。


但是热部署是不可能热部署的,要不然DAG的生成怎么办……








在 2019-03-13 11:13:34,"罗学焕/予之" <xuehuan.lxh@dtwave-inc.com> 写道:

 Hi,大家好。


我这里有个Flink的问题想请教一下大家:


场景如下:
        使用Oracle 的Ogg同步工具,将Oracle 4个表的操作记录,同步到Kafka中。
        同步到Kafka时数据为Json格式,且存放在一个Topic中。
        Flink 会从Kafka 中读取了这个Topic ,并根据Json结构中的table字段,将此Topic
注册成多个流。
        利用利用Flink的分流,将此Topic,注册成A、B、C 三个流。
        之后,将A、B、C 三个流 做Join操作,并将结果结果输出。(如图,左侧)
        ---
        此时,由于业务新增了一个表,又往Kafka的Topic中新同步了一个表
。
        此时要进行解析表D ,并注册成表,一共有4个流。
        要做互相Join 。并输出结果。(如图、右侧)


示意图如下:
        在修改代码逻辑,并重新打包部署的情况下,是可以解决的。
        - -
        请问,可以在【Flink任务不停机重启】的情况下, 读取外部配置,
        新增一个流的分流解析,并动态修改处理的SQL,
        做到修改Flink的执行计划,并按照新的业务逻辑继续运行吗? 还是说不可避免的一定要进行Flink任务的重启?


        谢谢!
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message