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

相关推荐
天远云服22 分钟前
高并发风控实践:AES 加密与银行卡风险标签清洗的 Go 语言实现
大数据·api
无级程序员31 分钟前
datasophon中dolpinscheduler的自定义配置common.properties不生效问题解决
大数据
珠海西格电力34 分钟前
零碳园区基础架构协同规划:能源-建筑-交通-数字系统的衔接逻辑
大数据·人工智能·智慧城市·能源
weixin_5372170643 分钟前
AI 智能体如何利用文件系统进行上下文工程
大数据·人工智能
见识星球1 小时前
名企校招攻略
大数据·python
路边草随风1 小时前
starrocks compaction 进度问题定位
大数据·sql
跟着珅聪学java1 小时前
Logback日志配置教程
数据仓库·hive·hadoop
档案宝档案管理1 小时前
核心功能揭秘——档案管理系统如何破解档案管理难题?
大数据·数据库·安全·档案·档案管理
盟接之桥3 小时前
盟接之桥说制造:“盟接之桥”为何成了“断桥”?——制造企业困局突围的三重思考
大数据·人工智能·物联网·产品运营·制造
五度易链-区域产业数字化管理平台3 小时前
如何构建高质量产业数据信息库?五度易链的“八大核心库”与数据治理实践
大数据·人工智能