hadoop - HDFS接收器水槽太多小文件

标签 hadoop hdfs flume

agent.sinks=hpd
agent.sinks.hpd.type=hdfs
agent.sinks.hpd.channel=memoryChannel
agent.sinks.hpd.hdfs.path=hdfs://master:9000/user/hduser/gde
agent.sinks.hpd.hdfs.fileType=DataStream
agent.sinks.hpd.hdfs.writeFormat=Text
agent.sinks.hpd.hdfs.rollSize=0
agent.sinks.hpd.hdfs.batchSize=1000
agent.sinks.hpd.hdfs.fileSuffix=.i  
agent.sinks.hpd.hdfs.rollCount=1000
agent.sinks.hpd.hdfs.rollInterval=0

我正在尝试使用HDFS Sink将事件写入HDFS。并尝试过滚动“大小”,“计数”和“时基”,但没有一个按预期工作。它在HDFS中生成太多小文件,例如:
-rw-r--r--   2 hduser supergroup      11617 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832879.i
-rw-r--r--   2 hduser supergroup       1381 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832880.i
-rw-r--r--   2 hduser supergroup        553 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832881.i
-rw-r--r--   2 hduser supergroup       2212 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832882.i
-rw-r--r--   2 hduser supergroup       1379 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832883.i
-rw-r--r--   2 hduser supergroup       2762 2016-03-05 19:37 hdfs://master:9000/user/hduser/gde/FlumeData.1457186832884.i.tmp

请协助解决给定的问题。我正在使用水槽1.6.0

〜谢谢

最佳答案

我提供的配置都是正确的。出现这种现象的原因是HDFS。我有2个数据节点,其中有1个故障。因此,文件未达到所需的最低限度复制。在Flume日志中,也可以看到以下警告消息:

"Block Under-replication detected. Rotating file."



要消除此问题,可以选择以下任一解决方案:-
  • 上数据节点以实现所需的块复制,或
  • 相应地设置属性hdfs.minBlockReplicas

  • 〜谢谢

    关于hadoop - HDFS接收器水槽太多小文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815163/

    相关文章:

    hadoop - HDFS 中的文件何时关闭

    hadoop - 将日志文件从边缘节点提取到 Hadoop

    hadoop - Flume--找不到主类 : org. apache.flume.tools.GetJavaProperty

    mysql - 在 Cloudera 中使用 sqoop 将数据从 HDFS 导出到 mysql 时作业失败

    hadoop - 大数据和数据挖掘有什么区别?

    hadoop - Hadoop文件系统是物理文件系统还是虚拟文件系统

    hadoop - MapReduce-生成HDFS路径

    windows - 在 Windows7 中从 c# 代码执行时 Hadoop 命令不工作,错误显示 : "Access is denied"

    java - MapReduce 作业因 ExitCodeException exitCode=255 失败

    java - 无法使用本地 hadoop 连接 azure blob 存储