我现在看看那个报错,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 <magichu...@88.com>

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

收 件 人:user-zh <user-zh@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'







祝好~


回复