Application mode. I've done a bit more research and created https://issues.apache.org/jira/browse/FLINK-29288, planning to work on a PR today.
TLDR: currently Flink operator always creates /opt/flink/usrlib folder and forces you to specify the jarURI parameter, which is passed as pipeline.jars / pipeline.classpaths configuration options. This leads to the jar being loaded twice by different classloaders (system and user ones). On Fri, Sep 16, 2022 at 2:30 AM Matthias Pohl <matthias.p...@aiven.io> wrote: > Are you deploying the job in session or application mode? Could you > provide the stacktrace. I'm wondering whether that would be helpful to pin > a code location for further investigation. > So far, I couldn't come up with a definite answer about placing the jar in > the lib directory. Initially, I would have thought that it's fine > considering that all dependencies are included and the job jar itself ends > up on the user classpath. I'm curious whether Chesnay (CC'd) has an answer > to that one. > > On Tue, Sep 13, 2022 at 1:40 AM Yaroslav Tkachenko <yaros...@goldsky.com> > wrote: > >> Hey everyone, >> >> I’m migrating a Flink Kubernetes standalone job to the Flink operator >> (with Kubernetes native mode). >> >> I have a lot of classloading issues when trying to run with the operator >> in native mode. For example, I have a Postgres driver as a dependency (I >> can confirm the files are included in the uber jar), but I still get >> "java.sql.SQLException: No suitable driver found for jdbc:postgresql:..." >> exception. >> >> In the Kubernetes standalone setup my uber jar is placed in the >> /opt/flink/lib folder, this is what I specify as "jarURI" in the operator >> config. Is this supported? Should I only be using /opt/flink/usrlib? >> >> Thanks for any suggestions. >> >