Skip to content

Merge pull request #1 from streamxhub/deployment-onyarn#339

Merged
wolfboys merged 1 commit intoapache:deployment-onyarnfrom
wolfboys:deployment-onyarn
Oct 5, 2021
Merged

Merge pull request #1 from streamxhub/deployment-onyarn#339
wolfboys merged 1 commit intoapache:deployment-onyarnfrom
wolfboys:deployment-onyarn

Conversation

@wolfboys
Copy link
Member

@wolfboys wolfboys commented Oct 5, 2021

the isolation of runtime dependencies of different versions of Flink has been temporarily solved. The general methods are as follows:

  1. In streamx-flink-shims, all the related dependencies of flink (flink-core, flink-yarn, etc.) shaded into fat jar

  2. In other modules such as flink-submit, the maven "scpoe" that the relevant flink dependencies is "provided" and will not be printed into the final package

In a word, there is a special module that contains the dependency package of a specific version of flink, but other modules do not. The advantage of this is that it can simply and roughly solve the dependency problem of different versions of flink in the on-yarn mode. The problem is that the fatjar volume of the shims package is relatively large. The dependency management is relatively chaotic and unfriendly to the k8s-mode. We have to see how to do this in the k8s mode, Make on yarn and on k8s reach a balanced state and make them stable and available


暂时解决了不同版本flink运行时依赖的隔离,实现方式如下:

  1. 在streamx-flink-shims中 引入了任务发布时(on yarn)需要的所有flink的相关依赖(flink-core,flink-yarn 等...) shadded到fat jar中
  2. 其他模块如flink-submit等中相关flink依赖的scpoe均为 provided,不会打到最终的包里.

总而言之专门有一个模块(shims),包含特定版本flink的依赖包,其他模块不包含, 这样做的好处是可以简单粗暴的解决on-yarn模式下flink不同版本的依赖问题.带来的问题是:shims包的fatjar体积比较大. 依赖的管理相对来说比较混乱,对k8s模式下不友好.这块还得看看在k8s下如何进行,使得on yarn和on k8s达到一个平衡的状态,使其稳定可用.

[Feature] flink multi version runtime dependency isolation #337
@wolfboys wolfboys merged commit 49f9853 into apache:deployment-onyarn Oct 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant