【问题标题】:Flink runs multiple jobs from single jarFlink 从单个 jar 运行多个作业
【发布时间】:2020-09-04 02:53:40
【问题描述】:

我有 2 个作业从 Kafka 中的 2 个主题读取数据。每个作业的业务逻辑都不同,可以并行运行,但它们使用任何常见的库、函数……所以我在一个项目 java 中编写了 2 个作业。我有任何问题要运行以上 2 个作业:

Opt1:上传一个jar(1个主类包含2个stream),运行1个job。

=> 但是使用检查点,作业 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:每个job构建一个jar,运行2个job对应2个jar:

=> 我认为类似 Opt2。

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

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

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

    【讨论】:

    • 因为我使用checkpoint,如果我使用Opt1,stream1会影响到stream2。我喜欢 Opt2,但正如你所说,这听起来像是我的罐子的包装问题。我不明白。
    • 那么您已经完成了测试,并且发现了一个使用单一作业方法无法解决的检查点问题?
    • 是的,有 2 个流和检查点的单个作业会出错(检查点非常慢并崩溃),因为流 1 的速度非常快,流 2 的速度较慢。
    • 流的速度不应该影响您的检查点,只会影响用于状态的键空间的基数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2017-05-19
    • 2017-09-29
    • 2021-05-16
    相关资源
    最近更新 更多