[ 
https://issues.apache.org/jira/browse/FLINK-38282?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18016041#comment-18016041
 ] 

raphaelauv commented on FLINK-38282:
------------------------------------

If I add the jar flink-core-2.0.0.jar thanks to an initContainers it works


{code:java}
      initContainers:
        - name: curl
          image: curlimages/curl:latest
          command:
            - /bin/sh
            - '-c'
            - >-
              curl -H "Accept: application/zip"
              
https://repo1.maven.org/maven2/org/apache/flink/flink-s3-fs-hadoop/2.0.0/flink-s3-fs-hadoop-2.0.0.jar
              --output
              /opt/flink/plugins/s3-fs-hadoop/flink-s3-fs-hadoop-2.0.0.jar && 
              curl -H "Accept: application/zip"
              
https://repo1.maven.org/maven2/org/apache/flink/flink-core/2.0.0/flink-core-2.0.0.jar
              --output /opt/flink/operator-lib/flink-core-2.0.0.jar
          resources: {}
          volumeMounts:
            - name: s3-plugin
              mountPath: /opt/flink/plugins/s3-fs-hadoop/
            - name: flink-libs
              mountPath: /opt/flink/operator-lib/
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always {code}
 

> K8S operator : S3 jarURI 
> -------------------------
>
>                 Key: FLINK-38282
>                 URL: https://issues.apache.org/jira/browse/FLINK-38282
>             Project: Flink
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: raphaelauv
>            Priority: Major
>         Attachments: flink-kubernetes-operator.log
>
>
> Using the flink operator 1.8.2
> with flink 2.0.0
> I can't submit FlinkSessionJob that have a jarURI on a s3
> {code:java}
> apiVersion: flink.apache.org/v1beta1
> kind: FlinkDeployment
> metadata:
>   name: basic-example
> spec:
>   image:  
>   flinkVersion: v2_0
>   flinkConfiguration:
>     taskmanager.numberOfTaskSlots: "2"
>     s3.endpoint: http://minio:9000
>     s3.path.style.access: "true"
>     s3.access-key: admin
>     s3.secret-key: adminadmin
>     s3.region: eu-west-3
>   serviceAccount: flink
>   jobManager: 
>     resource:
>       memory: "2048m"
>       cpu: 1
>   taskManager:
>     resource:
>       memory: "2048m"
>       cpu: 1
>   podTemplate:
>     spec:
>       containers:
>         - name: flink-main-container
>           env:
>             - name: ENABLE_BUILT_IN_PLUGINS
>               value: "flink-s3-fs-hadoop-2.0.0.jar" {code}
> {code:java}
> apiVersion: flink.apache.org/v1beta1
> kind: FlinkSessionJob
> metadata:
>   name: my-flink-job
> spec:
>   deploymentName: basic-example
>   job:
>     jarURI: s3://test-bucket/myjar-0.0.1.jar
>     parallelism: 1
>     upgradeMode: stateless {code}
>  
>  
> the FlinkSessionJob fail with :
> {code:java}
> Could not find a file system implementation for scheme 's3a'. The scheme is 
> directly supported by Flink through the following plugin(s): 
> flink-s3-fs-hadoop. Please ensure that each plugin resides within its own 
> subfolder within the plugins directory. See 
> https://nightlies.apache.org/flink/flink-docs-stable/docs/deployment/filesystems/plugins/
>  for more information. If you want to use a Hadoop file system for that 
> scheme, please add the scheme to the configuration 
> fs.allowed-fallback-filesystems. For a full list of supported file systems, 
> please see 
> https://nightlies.apache.org/flink/flink-docs-stable/ops/filesystems/. {code}
> and in the operator pod the logs are ->
>  
> {code:java}
> java.util.ServiceConfigurationError: 
> org.apache.flink.core.fs.FileSystemFactory: 
> org.apache.flink.fs.s3hadoop.S3FileSystemFactory Unable to get public no-arg 
> constructor
> at java.base/java.util.ServiceLoader.fail(Unknown Source)
> at java.base/java.util.ServiceLoader.getConstructor(Unknown Source)
> at 
> java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(Unknown
>  Source)
> at 
> java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(Unknown 
> Source)
> at java.base/java.util.ServiceLoader$2.hasNext(Unknown Source)
> at java.base/java.util.ServiceLoader$3.hasNext(Unknown Source)
> at 
> org.apache.flink.core.plugin.PluginLoader$ContextClassLoaderSettingIterator.hasNext(PluginLoader.java:130)
> at 
> org.apache.flink.shaded.guava31.com.google.common.collect.Iterators$ConcatenatedIterator.hasNext(Iterators.java:1391)
> at 
> org.apache.flink.shaded.guava31.com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:46)
> at 
> org.apache.flink.core.fs.FileSystem.addAllFactoriesToList(FileSystem.java:1088)
> at 
> org.apache.flink.core.fs.FileSystem.loadFileSystemFactories(FileSystem.java:1071)
> at org.apache.flink.core.fs.FileSystem.initialize(FileSystem.java:340)
> at 
> org.apache.flink.kubernetes.operator.FlinkOperator.<init>(FlinkOperator.java:112)
> at 
> org.apache.flink.kubernetes.operator.FlinkOperator.main(FlinkOperator.java:281)
> Caused by: java.lang.NoClassDefFoundError: 
> org/apache/flink/core/fs/PathsCopyingFileSystem
> at java.base/java.lang.ClassLoader.defineClass1(Native Method)
> at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
> at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
> at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
> at java.base/java.net.URLClassLoader$1.run(Unknown Source)
> at java.base/java.net.URLClassLoader$1.run(Unknown Source)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at java.base/java.net.URLClassLoader.findClass(Unknown Source)
> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
> at 
> org.apache.flink.core.classloading.ComponentClassLoader.loadClassFromComponentOnly(ComponentClassLoader.java:150)
> at 
> org.apache.flink.core.classloading.ComponentClassLoader.loadClassFromOwnerFirst(ComponentClassLoader.java:172)
> at 
> org.apache.flink.core.classloading.ComponentClassLoader.loadClass(ComponentClassLoader.java:107)
> at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
> at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.base/java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
> at java.base/java.lang.Class.getConstructor0(Unknown Source)
> at java.base/java.lang.Class.getConstructor(Unknown Source)
> at java.base/java.util.ServiceLoader$1.run(Unknown Source)
> at java.base/java.util.ServiceLoader$1.run(Unknown Source)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> ... 13 more
>   {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to