apache-flink - Flink 从单个 jar 运行多个作业
问题描述
我有 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 个 jar 的 2 个作业:
=> 我认为类似 Opt2。
解决方案
在您确定自己遇到问题之前,越简单越好。因此,我首先将一个 jar 与一个工作流程(您的 Opt1)一起使用,并且只有当您遇到问题时,我才会考虑创建两个您在集群(您的 Opt3)上同时运行的 jar(每个都有自己的工作流程) .
顺便说一句,您遇到的 Opt2 问题听起来像是 jar 的包装问题。
推荐阅读
- r - 使用 R veriosn 3.6.1 以 csv 格式导入数字数据的问题
- android - 在 Android\Sdk 中找不到带有哈希字符串“android-28”的目标
- rust - 如何给 impl trait 起别名?
- django - 如何在不编写 if else 语句的情况下排除 AND 查询集中的空值
- flutter - 如何使用 Flutter 小部件测试器找到“选定的”ListTile?
- .net-core - BaseController 处理客户端工厂
- python - Flask 邮件附件错误 - 'dict' 对象没有属性 'startswith'
- angular - 是否可以将 Angular routerLink 添加到 HTML标签以避免 SEO 问题?
- django - 在 ubuntu 服务器 16.04 上安装 psycopg2 时出错
- angularjs - $http get api 响应在 angularJS 中未定义