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

相关推荐
Lill_bin11 分钟前
ElasticSearch底层原理解析
大数据·分布式·elasticsearch·搜索引擎·zookeeper·云原生·jenkins
我的K840938 分钟前
解决Hive乱码问题
数据仓库·hive·hadoop
Tronlongtech40 分钟前
武汉传媒学院联合创龙教仪建设DSP教学实验箱,基于DSP C6000平台搭建
大数据·传媒
盼兮*1 小时前
Centos7环境下Hive的安装
大数据·数据仓库·hive·hadoop
Hello.Reader3 小时前
深入理解 ClickHouse 的性能调优与最佳实践
大数据·数据仓库·clickhouse·数据分析
学习3人组10 小时前
清华镜像源的使用说明
大数据·python·maven
阳爱铭11 小时前
指标服务平台:全面解析
java·服务器·网络·hadoop·sql·hbase·数据库架构
Easonmax13 小时前
文心智能体应用:美国旅游助手的诞生
大数据·人工智能·旅游
学习3人组13 小时前
pip install、yum install和conda install三者技术区分
大数据
@听风吟15 小时前
力扣之1783.大满贯数量
android·java·大数据·leetcode