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

相关推荐
Guheyunyi9 分钟前
电气安全管理系统:架构、技术与智能预警体系
大数据·人工智能·科技·安全·架构
走遍西兰花.jpg44 分钟前
hive如何使用python脚本
数据仓库·hive·hadoop·python
乐迪信息44 分钟前
乐迪信息:智能识别船舶种类的AI解决方案
大数据·网络·人工智能·算法·无人机
2501_920953861 小时前
目前有实力的6S咨询公司推荐
大数据·人工智能
德彪稳坐倒骑驴1 小时前
Hive电商分析项目 Azkaban自动化运行
hive·hadoop·自动化
云境天合小科普1 小时前
红外温度传感器:实现预防性维护
大数据
Dxy12393102161 小时前
深度解析 Elasticsearch 8.13.4 范围查询 DSL
大数据·elasticsearch
PNP Robotics1 小时前
PNP机器人分享具身操作策略和数据采集
大数据·人工智能·学习·机器人
企业智能研究2 小时前
数据治理是什么?数据治理对企业有什么价值
大数据·人工智能
Zilliz Planet2 小时前
官宣 | Milvus 2.6云上GA:三层存储降本85% 、速度快ES 4-7 倍,多数据类型支持
大数据·elasticsearch·搜索引擎·全文检索·milvus