Hello.
I have problems trying to run a Flink session job using Flink Kubernetes
operator. Two problems, so far. This is the Spec I am trying to use:
apiVersion: flink.apache.org/v1beta1
kind: FlinkSessionJob
metadata:
name: nix-test
spec:
deploymentName: flink-cluster-session-cluster
job:
jarURI: "local:///opt/flink/opt/flink-python-1.20.1.jar"
entryClass: "org.apache.flink.client.python.PythonDriver"
args:
[
"--python", "/opt/flink/workflows/CACHE/cache_valkey_updater.py",
"--cdc_kafka_topic", "cdc-inspection-type",
"--entity_type", "inspection-type",
"--field_names", "Name_Enum"
]
parallelism: 1
state: running
upgradeMode: savepoint
Problem 1: The first problem is that the operator doesn’t know about “local”
URI schema used in jarURI.
Could not find a file system implementation for scheme ''local''. The scheme is
not directly supported by Flink and no Hadoop file system to support this
scheme
could be loaded.
Is there something I should turn on in the config for this to be recognized?
In any case, I have read that for PyFlink jobs, this is just a placeholder and
can be dropped. So I did.
Problem 2: With jarURI dropped I get further, but now Java 9+ modules bite me.
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make
field private final java.util.Map java.util.Collections$UnmodifiableMap.m
accessible:
module java.base does not \"opens java.util\" to unnamed module @4ba2ca36
at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown
Source)
at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown
Source)
at java.base/java
I know that we must put a lot of those –add-opens to Flink config and I have
them all. But this looks like it should be added to the Operator itself.
Any advice here?
Nikola.