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

相关推荐
FPGA小迷弟43 分钟前
ChatGPT回答用AI怎么怎么赚钱
大数据·人工智能
AllData公司负责人1 小时前
实时开发平台(Streampark)--Flink SQL功能演示
大数据·前端·架构·flink·开源
小坏讲微服务3 小时前
MaxWell中基本使用原理 完整使用 (第一章)
大数据·数据库·hadoop·sqoop·1024程序员节·maxwell
勇往直前plus5 小时前
ElasticSearch详解(篇一)
大数据·elasticsearch·jenkins
一只小青团8 小时前
Hadoop之HDFS
大数据·hadoop·分布式
ITVV8 小时前
hadoop-3.4.1 单机伪部署
大数据·linux·hadoop
小鹿学程序8 小时前
4.子任务四:Hive 安装配置
数据仓库·hive·hadoop
小杜谈数8 小时前
企业BI建议--数据治理平台
大数据
谅望者9 小时前
数据分析笔记07:Python编程语言介绍
大数据·数据库·笔记·python·数据挖掘·数据分析
中国国际健康产业博览会12 小时前
2026第35届中国国际健康产业博览会探索健康与科技的完美结合!
大数据·人工智能