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

相关推荐
矶鹬笛手1 小时前
(2.2) 新一代信息技术及应用
大数据·云计算·区块链·时序数据库
汤姆yu3 小时前
基于python大数据的小说数据可视化及预测系统
大数据·python·信息可视化
立控信息LKONE4 小时前
库室采购安全设施设备——自主研发、国产化监管一体机
大数据·安全
顧棟4 小时前
HDFS元数据与auditlog结合Hive元数据统计分析
hive·hadoop·hdfs
z***89715 小时前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
Kevinyu_6 小时前
责任链模式
java·hadoop·责任链模式
TDengine (老段)6 小时前
TDengine 转换函数 TO_JSON 用户手册
android·大数据·数据库·json·时序数据库·tdengine·涛思数据
rgb2gray7 小时前
增强城市数据分析:多密度区域的自适应分区框架
大数据·python·机器学习·语言模型·数据挖掘·数据分析·llm
expect7g7 小时前
Paimon源码解读 -- PartialUpdateMerge
大数据·后端·flink
yumgpkpm9 小时前
腾讯云TBDS与CDH迁移常见问题有哪些?建议由CDH迁移到CMP 7.13 平台(类Cloudera CDP,如华为鲲鹏 ARM 版)
hive·hadoop·zookeeper·flink·spark·kafka·hbase