问题描述: 

    采用flume 上传 到HDFS 通过原生的sink 一直会报如下警告错误:

    问题会直接导致上传hdfs 文件不成功,会细分成好多小的文件。

    关于flume hdfs sink lzo 压缩格式的问题_HDFS IO error java.i


flume 支持lzo 压缩前提条件: 

    1、 flume机器节点上 安装有 lzo 库   hadoop 库  。

    2、 flume 启动的时候配置过 hadoop  环境变量  。 

    3、 hadoop 配置 支持lzo 格式压缩 。


解决问题: 

    1、开始以为是因为大文件写入HDFS 超时导致 。。。。结果调大了calltimeout  。。。问题依然存在。

    2、在网上搜了些答案 实验都不成功 ,最后只好去看 hadoop lzo 源码 如下图:

    关于flume hdfs sink lzo 压缩格式的问题_HDFS IO error java.i_02    


    3、开始怀疑机器上lzo 的版本,于是重新安装lzo ,这里不介绍如何安装 。

    4、成功安装后 ,配置好flume ,从启动后 问题解决。


问题总结 : 

    这种开源的问题是最不好解决的,大家即时发现了可能也不太好解决,幸好这个问题可以通过升级来解决问题。

    希望遇到和我一样问题的朋友有所帮助