Re: flink1.10 & pyflink相关问题咨询

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: flink1.10 & pyflink相关问题咨询

jincheng sun
看你错误日志运行的示例使用了PyUDFDemoConnector,也就是参考的博客[1],
在写这个博客时候1.10还没有发布,在发布之后接口有变化,所以PyUDFDemoConnector有个问题,我前两天进行了更新。你可以更新一下JAR。

另外你发的问题很久之前,发布1.10之前已经fix了[2],所以你更新一下connector在测试一下看看。有问题继续沟通。

Best,
Jincheng
[1]
https://enjoyment.cool/2019/12/05/Apache-Flink-%E8%AF%B4%E9%81%93%E7%B3%BB%E5%88%97-%E5%A6%82%E4%BD%95%E5%9C%A8PyFlink-1-10%E4%B8%AD%E8%87%AA%E5%AE%9A%E4%B9%89Python-UDF/
[2] https://issues.apache.org/jira/browse/FLINK-14581


zilong xiao <[hidden email]> 于2020年3月25日周三 下午12:19写道:

> 是的,有一个关键步骤:`source
> py36/bin/activate`是在文档中未体现的,执行该步骤后提交到yarn集群可以正常工作,然后最近在进一步研究1.10对于udf的支持,在尝试提交udf作业时,会出现如下异常:
>
> Caused by: java.io.IOException: Cannot run program
> "xxx/pyflink-udf-runner.sh": error=2, No such file or directory
>
> 提交作业前的操作如下:
> 1.pip install virtualenv
> 2.virtualenv --always-copy venv
> 3.venv/bin/pip install apache-beam==2.15.0
> 4.venv/bin/pip install apache-flink
> 5.venv/bin/pip install pydemo.tar.gz
> 6.zip -r venv.zip venv
> 7.bin/flink run -pyarch venv.zip -pyexec venv.zip/venv/bin/python -py
> ./word_count_socket.py -j pydemo.jar
>
> 不知道前辈是否有遇到过类似情况呢?
>
> 完整异常栈信息 & 作业见附件
>
> jincheng sun <[hidden email]> 于2020年3月19日周四 下午12:08写道:
>
>> 开心看到你在使用PyFlink 1.10,您遇到的问题,核心问题和将解决方式如下:
>>
>> 1.
>> 利用shell的alias功能更改python命令指向是无效的,因为flink不通过shell启动Python进程。所以对flink来说本地python环境依然是python2.
>> 2. 可以通过virtualenv, conda等工具创建python3.5+的环境,并激活,在激活了的环境下提交python job。 比如:
>>   pip install virtualenv
>>   virtualenv --python /usr/local/bin/python3 py36
>>   source py36/bin/activate
>>   flink run -py pyflink.py
>> 3. 另外也可以修改python命令的软链接,令其指向python3.5+。
>>
>> 你可以尝试一下,有问题随时邮件交流!
>>
>> Best,
>> 孙金城(金竹)
>>
>>
>>
>> zilong xiao <[hidden email]> 于2020年3月18日周三 下午12:14写道:
>>
>>> hi,金竹前辈您好,我是一名从事实时计算方向的IT工作者,最近在使用flink1.10 &
>>> pyflink时遇到一点问题,希望能加下您的钉钉或者其他联系方式和您进一步交流,问题大概描述如下:
>>>
>>> 任务提交环境:
>>> Apache-beam:2.15.0
>>> 本地python:2.7(已配置python3.7,通过修改~/.zshrc,alias
>>> python='/usr/local/bin/python3.7')
>>> pip:20.0.2
>>> flink:1.10
>>>
>>> 提交命令:bin/flink run -pyarch tmp/venv.zip -pyexec
>>> tmp/venv.zip/venv/bin/python3 -py word_count.py
>>>
>>> 在本地尝试以pre-job模式部署作业时,发现会提示如下报错,导致任务提交失败
>>>
>>> RuntimeError: Python versions prior to 3.5 are not supported for PyFlink
>>> [sys.version_info(major=2, minor=7, micro=16, releaselevel='final',
>>> serial=0)].
>>>
>>>
>>> 显而易见,正如flink官方文档所说flink1.10作业必须要求python3.5+,我通过-pyarch
>>> -pyexec来指定任务执行环境以及解释器环境,发现这两个指令貌似没生效,或者说没有作用,还是会有如上异常,具体执行过程都是参考您的文档:
>>> https://enjoyment.cool/2020/01/02/Apache-Flink-%E8%AF%B4%E9%81%93%E7%B3%BB%E5%88%97-PyFlink-%E4%BD%9C%E4%B8%9A%E7%9A%84%E5%A4%9A%E7%A7%8D%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%BC%8F/#more
>>> 来操作的,我在想可能还是我的打开方式不对,亦或该指令还存在隐藏问题?可是网上也没有太多的资料,所以希望能和前辈您交流交流,帮我解开这个疑惑,期待前辈您的回复。
>>>
>>