argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常

一、问题描述

一位同学反馈,他写的argo存过中调用了一个自定义函数,函数会加载hdfs上的一个文件,但有些节点会报FileSystem closed异常,同时有时任务会成功,有时会失败。

二、问题分析

argodb的计算引擎是基于spark的定制化引擎,对于自定义函数的调用跟hive on spark的是一致的。udf要通过反射生成实例,然后迭代调用evaluate。通过代码分析,udf在读取完hdfs文件后会关闭FS,这在逻辑上是正确的,那为什么还会出现HDFS文件系统已关闭的异常?难道是Spark的各个不同节点的executor共享了FS(客户端)?顺着这一点,可以查看集群上这个配置项的值,即"fs.hdfs.impl.disable.cache",这个值默认是false(出现性能考虑),但这意味着hdfs文件系统的实现类(DistributedFileSystem)实例是共享、缓存的,在spark不同的executor中一旦有一个任务关闭了fs,那么其它的executor也会受到影响,这也是报fs closed异常的原因,所以将fs.hdfs.impl.disable.cache设置成true,不允许缓存fs。即可解决该问题。

三、问题解决

fs.hdfs.impl.disable.cache=true

相关推荐
AI_yangxi3 分钟前
短视频矩阵系统服务商
大数据·人工智能·矩阵
硅谷秋水1 小时前
SkillOpt:自演化智体技能的执行策略
大数据·人工智能·深度学习·机器学习·语言模型
智慧景区与市集主理人1 小时前
传统农场的数字化蝶变:马山百里度假区全域智慧化升级,重构乡村文旅运营逻辑
大数据·人工智能
名不经传的养虾人1 小时前
从0到1:企业级AI项目迭代日记 Vol.38|能演示的系统,和能日常用的系统,差的是这五件事
大数据·人工智能·ai编程·企业ai·多agent协作
小小王app小程序开发1 小时前
陪诊小程序开发功能深度分析:功能架构、业务逻辑与落地要点
大数据·架构
Yang96111 小时前
鼎讯信通 RM-1000:助力风电信号覆盖与设备稳定运行
大数据·网络
仙俊红2 小时前
rocketmq学习
大数据·学习·rocketmq
星辰_mya2 小时前
数据同步的几种姿势
大数据·elasticsearch·搜索引擎
卷毛迷你猪2 小时前
快速实验篇(A5)基于 MapReduce 的降水百分位数计算与干旱等级划分
大数据·mapreduce
Volunteer Technology2 小时前
Flink的DataStream分区操作
大数据·linux·flink