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

相关推荐
Urbano13 小时前
卫衣生产工艺科普与智能自动化设备应用解析
大数据·运维·人工智能
Geeys14 小时前
拼多多投产比(ROI)越高好还是越低好?深度拆解合理阈值与高效提效工具
大数据
QC777LX14 小时前
运营岗位怎么借AI提升内容、活动和复盘效率?
大数据·人工智能
智塑未来15 小时前
AI Agent 搜索工具选型参考:聚焦 AI Agent 搜索的垂直专用基础设施
大数据·人工智能
Urbano17 小时前
稳产提质、快返增效:慧拿智能模板机重塑服装厂精细化盈利模式
大数据·人工智能
YueLin11118 小时前
私域直播系统的下半场,是社区零售的分水岭
大数据·零售
哥本哈士奇18 小时前
医疗器械行业 Salesforce Territory 完整落地实例
大数据·人工智能
samLi062018 小时前
【无标题】
大数据
zandy101119 小时前
企业级BI平台选型指南:评估框架与核心能力矩阵
大数据·人工智能·矩阵
远铂19 小时前
BuildAdmin:GEO优化与AI内容营销一体化解决方案
大数据·人工智能·geo·buildadmin