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

相关推荐
万悉科技32 分钟前
比 Profound 更适合中国企业的GEO产品
大数据·人工智能
汽车仪器仪表相关领域2 小时前
LambdaCAN:重构专业空燃比测量的数字化范式
大数据·人工智能·功能测试·安全·重构·汽车·压力测试
璞华Purvar2 小时前
地方产投集团数字化平台建设实战:从内控管理到决策赋能(璞华公开课第5期活动回顾)
大数据·人工智能
GeminiJM3 小时前
Elasticsearch minimum_should_match 参数详解
大数据·elasticsearch·jenkins
少废话h4 小时前
Redis主从与集群搭建全指南
大数据·linux·redis·mysql
TextIn智能文档云平台4 小时前
什么是多模态信息抽取,它和传统OCR有什么区别?
大数据·人工智能
雨中飘荡的记忆5 小时前
HBase实战指南
大数据·数据库·hbase
半吊子全栈工匠5 小时前
如何接手一个数据团队?
大数据·人工智能
新诺韦尔API5 小时前
如何快速接入手机携号转网查询接口?
大数据·智能手机·api
都市摆渡人6 小时前
反理论产品周刊#3:如何有效地做产品知识管理
大数据