Flink从单个jar运行多个作业

时间:2020-09-04 02:53:40

标签: apache-flink flink-streaming

我有2个工作从Kafka的2个主题中读取数据。每个作业的业务逻辑是不同的,可以并行运行,但是它们使用任何通用的库,函数等。因此,我在一个项目Java中编写了2个作业。我有任何疑问要执行上述2个工作:

Opt1 :上传一个jar(1个主类包括2个流),并运行1个作业。

=>但是使用检查点,作业1可能会受到作业2的影响并影响性能。

Opt2 :上传一个jar(2个主类,对应2个流)并通过EntryClass运行2个作业:

=>但是,当我运行2个作业时,我遇到了一个错误org.apache.kafka.common.config.ConfigException: Invalid value org.apache.kafka.common.serialization.StringSerializer for configuration key.serializer: Class org.apache.kafka.common.serialization.StringSerializer could not be found.如果我仅运行1个作业,则不会出错。我认为在部署相同的2个文件jar时,flink会冲突。

Opt3 :每个作业会建立一个jar,并运行2个对应于2个jar的作业:

=>我认为类似Opt2。

1 个答案:

答案 0 :(得分:1)

直到您知道直到您确定遇到问题为止,越简单越好。因此,我首先将一个jar与一个工作流程(您的Opt1)一起使用,只有遇到问题时,我才会考虑创建两个在群集上同时运行的jar(每个都有他们自己的工作流程)(您的Opt3)

顺便说一句,您在Opt2中遇到的问题听起来像是jar的包装问题。

相关问题