Hive DFSclient
来源:互联网 发布:python createelement 编辑:程序博客网 时间:2024/06/01 20:14
最近写hive的UDF,由于在UDF中操作了HDFS,测试jar包一直是正常的,但一到集群的hive环境中去测试就包错
java.io.IOException: Filesystem closedat org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:272)at org.apache.hadoop.hdfs.DFSClient.access$900(DFSClient.java:71)at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.close(DFSClient.java:2085)at java.io.FilterInputStream.close(FilterInputStream.java:155)at org.apache.hadoop.io.compress.DecompressorStream.close(DecompressorStream.java:144)at com.hadoop.compression.lzo.LzopCodec$LzopInputStream.close(LzopCodec.java:413)at org.apache.hadoop.util.LineReader.close(LineReader.java:145)at com.hadoop.mapred.DeprecatedLzoLineRecordReader.close(DeprecatedLzoLineRecordReader.java:109)at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doClose(CombineHiveRecordReader.java:74)at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.close(HiveContextAwareRecordReader.java:55)at org.apache.hadoop.hive.shims.Hadoop20SShims$CombineFileRecordReader.close(Hadoop20SShims.java:234)at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.close(MapT
在网上找了不少资料,最终在一个国外的论证的一个贴着中找到答案
本人的代码中用到:FileSystem.get(conf);
https://issues.apache.org/jira/browse/HDFS-925
大概意思是调用FileSystem.get(conf);时,程序会共享DFSClient,这样多线程间共享Filesystem,当Filesystem打开时被一个线程获取,而这个线程中Filesystem还在用的时候,另一个线程就把Filesystem给关闭了。调用.FileSystem.newInstance(conf);则不会出现这样的问题,每次都重新实例化一个Filesystem。
解决方案:将FileSystem.get(conf);换成FileSystem.newInstance(conf)即可。
- Hive DFSclient
- BlockReader in DFSClient
- Hadoop权威指南-DFSClient
- DFSClient技术内幕 (DFSClient介绍以及其初始化)
- HDFS dfsclient写文件过程
- Hadoop DataNode与DFSClient交互
- Hadoop异常 hdfs.DFSClient: DataStreamer
- HDFS--DFSClient中的读Block机制
- [Hadoop] DFSClient: Could not complete file ...
- Hadoop-HDFS DFSClient的严重bug
- HDFS dfsclient读文件过程 源码分析
- HDFS dfsclient写文件过程 源码分析
- hadoop源码 - dfsclient写文件过程
- DFSClient技术内幕(读取数据)
- Hadoop源码分析22:dfsclient概要
- HDFS dfsclient写文件过程 源码分析
- hdfs.DFSClient: Failed to close file 解决办法
- INFO hdfs.DFSClient: Exception in createBlockOutputStream错误
- 说说自己找互联网工作的经验
- SQL server 时间转化成字符串
- 马云点拨刘强东:问明白自己为谁而战!凭啥可以战?
- 从头学起Expert C Program 1
- List,数组互相转换
- Hive DFSclient
- Android 高仿【优酷】圆盘旋转菜单 的实现
- 目前流行的分形软件一览
- 暂缓解析javascript
- Linux下编写动态链接库,如何定义一个init和finalize的方法?
- hadoop伪分布模式下的编程步骤
- 抽象的数码艺术-分形艺术
- Application Request Route详解
- Android 应用程序异常信息捕获发送至服务器