Hi,



在使用pyflink  提交任务时,指定  -pyarch venv.zip -pyexec 
venv.zip/venv/bin/python,任务里面用到了udf  IPy是第三方库,之前直接安装报权限错误,不能安装,现在想用虚拟环境的方法来解决

set_python_requirements 图片地址:https://s3.ax1x.com/2020/12/17/r8J6AI.png




之前是使用默认Python环境,会报安装权限被拒绝的问题,我刚才使用指定Python环境的方式提交了一下,里面也加上了  
set_python_requirements,没有再报权限的错误,并被提交到了yarn上有applicationid,这是说明已经在虚拟环境中安装成功了吧?




但是出现了新的错误,Caused by: java.net.ConnectException: Connection refused

错误图片地址:https://s3.ax1x.com/2020/12/17/r8YJKg.png




我的cdh环境是,hadoop也是在这三台机器上部署的

cdh001  cdh002  cdh003
flink 版本  1.11     

集群配置:

        master   cdh001:8081    cdh002:8081   

        wokers  cdh001 cdh002 cdh003




看报错是在连接  cdh002:31331  的时候出现了问题,当任务被提交到yarn集群时,我在cdh002的机器上查找这个端口,并没有发现有31331存在 
   netstat  -ntlp|grep  31331   是空的




这个是因为什么呀?




Best,

Magichuang




> ------------------ 原始邮件 ------------------
> 发 件 人:"Xingbo Huang" <hxbks...@gmail.com>
> 发送时间:2020-12-16 12:42:48
> 收 件 人:user-zh <user-zh@flink.apache.org>
> 抄 送:
> 主 题:Re: pyflink 引用第三库的文件出现安装权限的问题
>
> Hi,
>
> 默认就是你每台机器的python指向的环境下,当然你也可以通过-pyexec指定不同的python环境
>
> Best,
> Xingbo
>
> magichuang 于2020年12月15日周二 下午8:02写道:
>
> > 我现在看看那个报错,flink是把requirements.txt 和 cached_dir 已经先上传到hdfs上了,因为
> > /yarn/nm/usercache/root/appcache/application_1608026509770_0001/flink-dist-cache-f2899798-cfd4-42b9-95d3-204e7e34b943/418cd5a449fd6ec4b61a3cc2dca4ea08/requirements.txt
> >
> >
> > /yarn/nm/usercache/root/appcache/application_1608026509770_0001/flink-dist-cache-f2899798-cfd4-42b9-95d3-204e7e34b943/418cd5a449fd6ec4b61a3cc2dca4ea08/cached_dir
> > 在提交的时候 去看机器上是存在的,只不过等程序挂了,这个
> > /yarn/nm/usercache/root/appcache/application_1608026509770_0001文件夹就没了,所以有感觉hdfs没有问题。。
> >
> > 现在想请教一下,flink在引入外部 python依赖时,在从离线包里面安装库的时候是安装到了哪里?
> >
> >
> >
> >
> > 我看报错信息: Error [Errno 13] Permission denied: '' while executing command
> > python setup.py egg_info
> >
> > 因为它是在 python setup.py 的时候报的权限问题
> >
> >
> >
> >
> > 求大家给看看~~ 感谢
> >
> >
> >
> >
> > ------------------ 原始邮件 ------------------
> >
> > 发 件 人:magichuang
> >
> > 发送时间:2020-12-15 14:15:04
> >
> > 收 件 人:user-zh
> >
> > 抄 送:
> >
> > 主 题:pyflink 引用第三库的文件出现安装权限的问题
> >
> >
> >
> >
> > 请教一下大家,在本地直接python demo.py是可以运行的,但是提交到集群就会报错
> >
> > flink 版本:1.11 flink on yarn集群模式部署, per-job模式提交,三台机器
> >
> >
> >
> >
> > 提交命令:flink run -m yarn-cluster -ynm demo -ys 2 -ytm 2048 -p 2 -py demo.py
> >
> >
> >
> >
> > 代码截图地址:https://s3.ax1x.com/2020/12/15/rKIwE6.png
> >
> >
> >
> >
> > 报错截图地址:https://s3.ax1x.com/2020/12/15/rKIlNT.png
> >
> >
> >
> >
> > requestments.txt: IPy==1.0 cache_dir: IPy-1.00.tar.gz
> >
> >
> >
> >
> > 自定义udf代码:
> >
> > @udf(input_types=[DataTypes.STRING()], result_type=DataTypes.STRING())
> >
> > def judge_ip(ip):
> >
> > import IPy
> >
> > if ip in IPy.IP('192.168.112.0/28'):
> >
> > return 'in'
> >
> > return 'out'
> >
> >
> >
> >
> >
> >
> >
> > 祝好~
> >
> >
> >



--

Best,

MagicHuang


回复