Re:Re: Re: K8s Appliaction模式无法支持flinkjar中Java动态编译?

2023-08-30 文章
是的我的任务的jar包里包含动态编译所有依赖的, 任务的jar是通过 k8s  Apllication模式 userJar 方式进行动态加载的;









在 2023-08-30 12:14:18,"孙路昊"  写道:
>依赖的jar包,有编译到启动jar包里面吗
>
>周坤 <18679131...@163.com>于2023年8月30日 周三11:15写道:
>
>>
>> 你好!在K8s模式中,动态编译缺失运行在UserJar中,启动的时候通过RIch算子的Open方法从第三方拉取原始class文件,然后进行动态编译进行缓存内存中,
>> 按照YARN PER模式该方式是没有问题, 但是在K8s
>> Apllication模式,会找不到原始class文件中的依赖,其实在UserJar中有该文件的类依赖的;
>> 目前发现这个依赖类单独打jar包放在在lib目录下在框架运行时就加载才能找到依赖类,但是又不太符合规范;
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 在 2023-08-24 10:30:20,"Weihua Hu"  写道:
>>
>> Hi,
>>
>>
>> 抱歉我对 JavaCompiler 不是非常了解,我想知道这些动态编译是运行在 UserJar 的 main 方法中吗?以及编译的产物是怎么传递给
>> Flink 的?
>>
>>
>> Best,
>> Weihua
>>
>>
>>
>>
>>
>> On Tue, Aug 22, 2023 at 5:12 PM 周坤 <18679131...@163.com> wrote:
>>
>> 你好!
>> 有一个关于flink K8S apllication模式运行的问题需要解答下;
>>
>> 原本又yarn per模式运行的flink需要切换到K8s apllication模式;
>>
>>
>>
>>
>> 目前公司环境提供了一个通用的基础flink1.13镜像包;
>>
>> usrJar:自己实现一个flink任务, 该任务存在使用 javax.tools.JavaCompiler
>> 动态加载数据库的java类,进行动态编译加载运行;
>>
>> 目前在切换运行的时候会报 需要动态编译的类的依赖找不到;
>>
>>
>>
>>
>> 需要动态编译的class文件的依赖在 usrJar中都是存在的,但是启动却包找不到依赖的类;
>> 开始以为是 flink类加载机制导致:  classloader.resolve-order: parent-first , 增加该配置也无效;
>> 后来发现将需要编译的类依赖放入到lib, 可以执行通过,但是如此违背了动态编译的初衷;
>>
>> 对此我感到很困惑? 是什么原因导致,期待能有回复。
>>


Re:Re: K8s Appliaction模式无法支持flinkjar中Java动态编译?

2023-08-29 文章
你好!在K8s模式中,动态编译缺失运行在UserJar中,启动的时候通过RIch算子的Open方法从第三方拉取原始class文件,然后进行动态编译进行缓存内存中,
按照YARN PER模式该方式是没有问题, 但是在K8s 
Apllication模式,会找不到原始class文件中的依赖,其实在UserJar中有该文件的类依赖的; 
目前发现这个依赖类单独打jar包放在在lib目录下在框架运行时就加载才能找到依赖类,但是又不太符合规范;













在 2023-08-24 10:30:20,"Weihua Hu"  写道:

Hi,


抱歉我对 JavaCompiler 不是非常了解,我想知道这些动态编译是运行在 UserJar 的 main 方法中吗?以及编译的产物是怎么传递给 Flink 
的?


Best,
Weihua





On Tue, Aug 22, 2023 at 5:12 PM 周坤 <18679131...@163.com> wrote:

你好! 
有一个关于flink K8S apllication模式运行的问题需要解答下;

原本又yarn per模式运行的flink需要切换到K8s apllication模式; 




目前公司环境提供了一个通用的基础flink1.13镜像包;  

usrJar:自己实现一个flink任务, 该任务存在使用 javax.tools.JavaCompiler 动态加载数据库的java类,进行动态编译加载运行;

目前在切换运行的时候会报 需要动态编译的类的依赖找不到;


  

需要动态编译的class文件的依赖在 usrJar中都是存在的,但是启动却包找不到依赖的类;
开始以为是 flink类加载机制导致:  classloader.resolve-order: parent-first , 增加该配置也无效;
后来发现将需要编译的类依赖放入到lib, 可以执行通过,但是如此违背了动态编译的初衷;

对此我感到很困惑? 是什么原因导致,期待能有回复。