Merge pull request #1 from streamxhub/deployment-onyarn#339
Merged
wolfboys merged 1 commit intoapache:deployment-onyarnfrom Oct 5, 2021
wolfboys:deployment-onyarn
Merged
Merge pull request #1 from streamxhub/deployment-onyarn#339wolfboys merged 1 commit intoapache:deployment-onyarnfrom wolfboys:deployment-onyarn
wolfboys merged 1 commit intoapache:deployment-onyarnfrom
wolfboys:deployment-onyarn
Conversation
[Feature] flink multi version runtime dependency isolation #337
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
the isolation of runtime dependencies of different versions of Flink has been temporarily solved. The general methods are as follows:
In streamx-flink-shims, all the related dependencies of flink (flink-core, flink-yarn, etc.) shaded into fat jar
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运行时依赖的隔离,实现方式如下:
总而言之专门有一个模块(shims),包含特定版本flink的依赖包,其他模块不包含, 这样做的好处是可以简单粗暴的解决on-yarn模式下flink不同版本的依赖问题.带来的问题是:shims包的fatjar体积比较大. 依赖的管理相对来说比较混乱,对k8s模式下不友好.这块还得看看在k8s下如何进行,使得on yarn和on k8s达到一个平衡的状态,使其稳定可用.