conda构建的venv会把机器底层一些c的库包括进来,会比较全。通过python venv包构建的虚拟环境可能会因为跨机器出现问题。
Best, Xingbo RS <tinyshr...@163.com> 于2022年11月23日周三 09:25写道: > Hi, > 我这边使用的python命令构建的,没有用conda,这个应该没有影响吧 > python3 -m venv jxy_venv > > > 我启动了一个单点的flink测试,本机启动,有python环境,测试是可以运行成功的 > > > > Thanks > > > > > > 在 2022-11-22 15:39:48,"Xingbo Huang" <hxbks...@gmail.com> 写道: > >Hi RS, > > > >你是使用conda构建的venv吗,可以参考PyFlink 准备环境的文档[1] > > > >Best, > >Xingbo > > > >[1] > > > https://pyflink.readthedocs.io/en/latest/getting_started/installation/prepare.html#create-a-virtual-environment-using-conda > > > >RS <tinyshr...@163.com> 于2022年11月22日周二 15:14写道: > > > >> Hi, > >> Flink版本:1.15.1 > >> > >> > >> > A机器:在A机器上创建python虚拟环境,版本3.6.8,安装flink等python包,然后打包ZIP,jxy_venv.zip,上传到HDFS上 > >> B机器:在B机器上,主机上没有Python环境,Flink运行在K8S的docker中,docker里面也没有python环境, > >> C机器:在C机器上,有flink的client,存在python环境,负责启动任务 > >> > >> > >> 启动命令: > >> ./bin/flink run -Dexecution.runtime-mode=BATCH -d -m 192.168.1.2:8081 > -n > >> -py /xxx/main.py -pyfs hdfs://xxx/config.py -pyarch > >> hdfs://xxx/jxy_venv.zip#venv -pyclientexec venv/jxy_venv/bin/python > >> > >> > >> 报错信息: > >> ... > >> venv/jxy_venv/bin/python: symbol lookup error: venv/jxy_venv/bin/python: > >> undefined symbol: _Py_LegacyLocaleDetected > >> org.apache.flink.client.program.ProgramAbortException: > >> java.lang.RuntimeException: Python process exits with code: 127 > >> at > >> org.apache.flink.client.python.PythonDriver.main(PythonDriver.java:140) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > >> at > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > >> at java.lang.reflect.Method.invoke(Method.java:498) > >> at > >> > org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:355) > >> at > >> > org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:222) > >> at > >> org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:114) > >> at > >> > org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:836) > >> at > >> org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:247) > >> at > >> > org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1078) > >> at > >> > org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1156) > >> at java.security.AccessController.doPrivileged(Native Method) > >> at javax.security.auth.Subject.doAs(Subject.java:422) > >> at > >> > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729) > >> at > >> > org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41) > >> at > >> org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1156) > >> Caused by: java.lang.RuntimeException: Python process exits with code: > 127 > >> at > >> org.apache.flink.client.python.PythonDriver.main(PythonDriver.java:130) > >> ... 16 more > >> > >> > >> 请问下,这种情况需要怎么处理 ? > >> flink的环境中,一定要安装python命令吗? > >> > >> > >> Thanks > >> > >> >