Hi Pachara,

Could you check if this is a similar issue of
https://issues.apache.org/jira/browse/FLINK-37266. If so, you could
try to replace `-pyclientexec` with configuration option
`python.client.executable` to see if it works.

Regards,
Dian

On Mon, Jul 7, 2025 at 3:39 PM Nikola Milutinovic
<n.milutino...@levi9.com> wrote:
>
> Hi Pachara.
>
>
>
> We are also struggling to get a PyFlink job to run. Hitting some other wall, 
> but I would like to share some thoughts here.
>
>
>
> At the moment, we are launching our fleet of jobs using a specially crafted 
> Docker image: Flink 1.20.1 + plugins + PyFlink + our Python libs + our jobs. 
> From that image we are invoking “flink run -py … -pyFile …”. So, that image 
> is running as a Flink client and it interacts with Flink Session Cluster.
>
>
>
> The reason why I am mentioning all of this is that – I suspect – under 
> covers, Flink K8s Operator works in similar fashion. When you make a K8s 
> Custom Resource, the Operator will act as a client and it will try to read 
> those files you mention.
>
>
>
> And there lies the problem. file:///flink-tmp/... Is a reference to a local 
> file, but local to what? Kubernetes operator, I suspect. That is why some 
> examples show the following:
>
>
>
> spec:
>
>     job:
>
>         jarURI: local:///opt/flink/lib/flink-python-1.20.1.jar
>
>         …
>
>
>
> This fails for us, stating that “local” is not a recognized URI schema. Never 
> mind, we skipped it (and hit another wall).
>
>
>
> Sooo,…. You could try putting your Python files on some global storage, like 
> S3 and see if that works. If it does, please tell us.
>
>
>
> Nikola.
>
>
>
> From: Pachara Aryuyuen (Kas) <paryuy...@zilo.co.uk>
> Date: Monday, July 7, 2025 at 8:38 AM
> To: user@flink.apache.org <user@flink.apache.org>
> Cc: Santhana Jinjakam (Eye) <sjinja...@zilo.co.uk>
> Subject: [PyFlink] Issue Deploying FlinkSessionJob with PVC and Python Script 
> Access
>
> Dear Flink Community,
>
> I’m currently working on deploying a FlinkSessionJob using PyFlink and have 
> encountered an issue I hope someone can help clarify.
>
> Here’s my setup:
>
> I installed the Flink Kubernetes Operator in namespace A
> I deployed a FlinkDeployment in namespace B
> I’m trying to deploy a FlinkSessionJob in namespace B
>
> The job fails with a file not found error related to the jarURI. I’m 
> referencing a JAR file located at /flink-tmp/, which is mounted as a PVC on 
> the FlinkDeployment. This PVC is backed by EFS, so it should be accessible 
> across pods. I’ve confirmed that the file exists at that path.
>
> I also tried using the following public JAR instead:
>
> jarURI: 
> https://repo1.maven.org/maven2/org/apache/flink/flink-python/1.20.1/flink-python-1.20.1.jar
>
> However, even with this change, the Python script located in the same mounted 
> volume (/flink-tmp/transform_confirmed_trade.py) still cannot be found.
>
> I haven’t been able to find any best practices or working examples of 
> FlinkSessionJob with PyFlink. Do you have any sample manifests or guidance 
> for this use case?
>
> Here is the manifest I’m using:
>
> apiVersion: flink.apache.org/v1beta1
>
> kind: FlinkSessionJob
>
> metadata:
>
>   name: transform-confirmed-trade-job
>
>   namespace: namespace-b
>
> spec:
>
>   deploymentName: flink-cluster
>
>   job:
>
>     jarURI: file:///flink-tmp/flink-python-1.20.1.jar
>
>     entryClass: "org.apache.flink.client.python.PythonDriver"
>
>     args: ["-pyclientexec", "/usr/bin/python3", "--python", 
> "/flink-tmp/transform_confirmed_trade.py"]
>
>     parallelism: 2
>
>     upgradeMode: stateless
>
> Additional Question:
>
> Is it possible to configure TaskManagers to run permanently (i.e., not shut 
> down when idle)? If so, what configuration options are required to achieve 
> this behavior?
>
> Any help or pointers would be greatly appreciated.
>
> Best regards,
>
> Pachara Aryuyuen (Kas)
>
> Cloud Platform Engineer
>
>

Reply via email to