You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by magichuang <ma...@88.com> on 2020/12/15 06:15:04 UTC
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'
祝好~
Re: Re: pyflink 引用第三库的文件出现安装权限的问题
Posted by magichuang <ma...@88.com>.
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" <hx...@gmail.com>
> 发送时间:2020-12-16 12:42:48
> 收 件 人:user-zh <us...@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
Re: pyflink 引用第三库的文件出现安装权限的问题
Posted by Xingbo Huang <hx...@gmail.com>.
Hi,
默认就是你每台机器的python指向的环境下,当然你也可以通过-pyexec指定不同的python环境
Best,
Xingbo
magichuang <ma...@88.com> 于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 <ma...@88.com>
>
> 发送时间:2020-12-15 14:15:04
>
> 收 件 人:user-zh <us...@flink.apache.org>
>
> 抄 送:
>
> 主 题: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'
>
>
>
>
>
>
>
> 祝好~
>
>
>
Re: pyflink 引用第三库的文件出现安装权限的问题
Posted by magichuang <ma...@88.com>.
我现在看看那个报错,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 <ma...@88.com>
发送时间:2020-12-15 14:15:04
收 件 人:user-zh <us...@flink.apache.org>
抄 送:
主 题: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'
祝好~
Re: pyflink 引用第三库的文件出现安装权限的问题
Posted by Xingbo Huang <hx...@gmail.com>.
Hi,
光看报错,不知道是哪一步的权限不足导致的,你要不尝试wheel包传上去试试看吧,tar包源码安装会执行setup.py,可能会读写yarn上某些没有权限的目录啥的。
Best,
Xingbo