pyflink 引用第三库的文件出现安装权限的问题

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

pyflink 引用第三库的文件出现安装权限的问题

magichuang
请教一下大家,在本地直接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'







祝好~
Reply | Threaded
Open this post in threaded view
|

Re: pyflink 引用第三库的文件出现安装权限的问题

Xingbo Huang
Hi,

光看报错,不知道是哪一步的权限不足导致的,你要不尝试wheel包传上去试试看吧,tar包源码安装会执行setup.py,可能会读写yarn上某些没有权限的目录啥的。

Best,
Xingbo
Reply | Threaded
Open this post in threaded view
|

Re: pyflink 引用第三库的文件出现安装权限的问题

magichuang
In reply to this post by magichuang
我现在看看那个报错,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 <[hidden email]>

发送时间:2020-12-15 14:15:04

收 件 人:user-zh <[hidden email]>

抄 送:

主 题: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'







祝好~


Reply | Threaded
Open this post in threaded view
|

Re: pyflink 引用第三库的文件出现安装权限的问题

Xingbo Huang
Hi,

默认就是你每台机器的python指向的环境下,当然你也可以通过-pyexec指定不同的python环境

Best,
Xingbo

magichuang <[hidden email]> 于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 <[hidden email]>
>
> 发送时间:2020-12-15 14:15:04
>
> 收 件 人:user-zh <[hidden email]>
>
> 抄 送:
>
> 主 题: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'
>
>
>
>
>
>
>
> 祝好~
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Re: pyflink 引用第三库的文件出现安装权限的问题

magichuang
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" <[hidden email]>
> 发送时间:2020-12-16 12:42:48
> 收 件 人:user-zh <[hidden email]>
> 抄 送:
> 主 题: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