Flink Native Library xxx is being loaded in another classloader

在使用flink连接tdengine时,第一次连接没有问题,当重启任务时,出现flink Native Library libtaos.so already loaded  in another classloader异常。简单来说原因就是java的类加载机制,多个flink任务的类加载器,对tdengine的客户端库libtaos.so进行了多次加载。

解决的办法:

将tdengine客户端的jar包放到flink所在服务器的java环境的扩展依赖环境中,这样java应用的依赖就直接使用ext加载的类库,不再自己加载,就能保证不再重复加载。

将taos-jdbcdriver-2.0.38.jar及其依赖包,放入到/opt/java/jdk/jre/lib/ext文件夹下,java工程的pom文件中再把该依赖包的scope设置为provided。


        
            com.taosdata.jdbc
            taos-jdbcdriver
            2.0.38
            provided
        

你可能感兴趣的:(flink,大数据,tdengine)