flume报java.io.IOException: Not a data file的ERROR
来源:互联网 发布:ubuntu的网卡配置文件 编辑:程序博客网 时间:2024/06/05 18:07
flume清洗时报错 java.io.IOException: Not a data file,错误如下图:
opening file 的文件明明是一个数据文件,非要说不是数据文件。没办法,追踪错误,查找源码去。。。
结果在 package org.apache.avro.file中的 DataFileStream 类的initialize(InputStreamin)方法中发现了异常的出处,代码如下:
void initialize(InputStream in) throws IOException { this.header = new DataFileStream.Header(); this.vin = DecoderFactory.get().binaryDecoder(in, this.vin); byte[] magic = new byte[DataFileConstants.MAGIC.length]; try { this.vin.readFixed(magic); } catch (IOException var10) { throw new IOException("Not a data file."); }
......
在 readFixed 时异常了,真正的异常是 var10 ,不知道哪位大神把异常换成了 Not a data file了。
我想看 var10 的异常怎么办呢?只好重写源码了,把 var10 打粗来。
真正的错误来啦!
java.io.EOFException 异常啊。查了下,说是读取文件的问题。
继续研究,发现是flume的一个BUG。
官方给的解释:https://issues.apache.org/jira/browse/AVRO-813
我们的解决方案是:把spooldir的source跟踪的目录下的元数据文件删除既可。
flume跟踪的目录下会自动产生 .flumespool文件夹,里面有 .flumespool-main.meta 文件。该文件我理解的是存储的读取文件的 offset,
在读取该文件的时候出现了异常,将该文件删除,一切OK啦。缺点呢是可能会造成数据少量的重复。
那也没办法了,少量的容错老子接受了 ,最后重写source组件,只要该异常出现就删除.meta文件即可。防止flume异常结束在启动时出现上述错误。
阅读全文
0 0
- flume报java.io.IOException: Not a data file的ERROR
- hadoop 报错Error: java.io.FileNotFoundException: Path is not a file:/xx1/xx2的解决办法
- hadoop 报错Error: java.io.FileNotFoundException: Path is not a file:/xx1/xx2的解决办法
- hadoop 报错Error: java.io.FileNotFoundException: Path is not a file:/xx1/xx2的解决办法
- java.io.IOException: Parent directory of file is not writable
- 使用 hdfs dfs -put 报错 org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /test/a.txt._C
- java.io.IOException - Cannot run program "git": java.io.IOException: error=2, No such file or direct
- 安装好hadoop集群后,报错如下n org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/hadoop-roo
- java.io.IOException: [Management:141245]Schema validation error 的解决方法
- java.io.IOException: error=24, 打开的文件过多
- Error: java.io.IOException: Can't export data, please check failed map task logs
- Error: java.io.IOException: Can't export data, please check failed map task logs
- AndroidStudio报错AAPT: libpng error: Not a PNG file
- Cordova报错:libpng error: Not a PNG file
- linux上oracle9i执行dbca 报java.io.IOException: Bad file descriptor
- android sutdio 运行项目报错java.io.IOException: Failed to read zip file
- flume kafka sparkstreaming整合后spark executor dead 及集群报错java.io.IOException: Connection reset by peer
- android java.io.IOException: Parent directory of file is not writable: /sdcard/...
- osgEarth矢量插值 8. feature_inline_geometry.earth
- 处理多维度变化——桥接模式(四)
- 前端自动化构建工具--gulp
- zookeeper(汇总)之脑裂
- solr 7.1.0中solrJ的使用
- flume报java.io.IOException: Not a data file的ERROR
- 三种方式:eclipse的maven项目使用本地磁盘或第三方的jar
- 如何用C++实现自己的Tensorflow
- 人工生命
- Android MediaCodec[官网翻译]
- 清除前端缓存
- 你若安好,一切都好
- office常用技巧总结
- 排序算法(六)——希尔排序