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

相关推荐
移动云开发者联盟9 分钟前
西部首个!移动云(西部)Token中心正式发布
大数据·人工智能
zhangfeng113330 分钟前
CANN 社区任务提交 PR 踩坑与修复全记录(GitCode 平台)
大数据·elasticsearch·gitcode
Huazhongzhanhui33 分钟前
2026武汉国际汽车线束及连接器工业展览会智能线束新地标
大数据·人工智能
万维易源1 小时前
油价行情数据接口整理:国际原油与国内成品油
大数据·数据库·原油·油价
TDengine (老段)1 小时前
TDengine 如何支撑金隅集团水泥业务的能源精细化管控
大数据·数据库·物联网·能源·时序数据库·tdengine·涛思数据
Leo.yuan1 小时前
FineDataLink 5.0 vs Great Expectations:数据质量治理工具深度横评,国产低代码方案能否替代开源标杆?
大数据·人工智能
新闻码图1 小时前
国产化替代过程中用什么产品能统计国产设备占比?国内主流厂商
大数据
cd_949217211 小时前
让市场“随时买得到、卖得掉” 深澜量化探索流动性服务专业化
大数据·区块链
whcyhhh2 小时前
头歌实践教学平台:数据科学与大数据技术导论(五)
大数据·数据库·python
风途科技~2 小时前
路面温度监测站:红外遥感测温不接触路面,免维护长期连续监测
大数据·人工智能