当前位置: 首页 > 知识库问答 >
问题:

水槽-ng hdfs水槽。文件刷新率控制属性

曹臻
2023-03-14

我尝试每5分钟用其他事件刷新. tmp文件,我的源代码很慢,需要30分钟才能在我的hdfs接收器中获取128MB文件。

flume hdfs接收器中是否有任何属性,我可以在将.tmp文件滚动到hdfs之前控制该文件的刷新率。

我需要它使用. tmp文件中的hive表查看HDFS中的数据。

目前我正在查看来自的数据。tmp文件,但是。由于卷大小为128MB,tmp文件长时间不刷新。

共有1个答案

车明贤
2023-03-14

请考虑降低频道的容量和事务容量设置:

capacity    100 The maximum number of events stored in the channel
transactionCapacity 100 The maximum number of events the channel will take from a source or give to a sink per transaction

这些设置负责控制有多少事件在刷新到您的接收器之前被假脱机。例如,如果您将其降低到10,则每10个事件将被刷新到您的tmp文件中。

您需要更改 hdfs 接收器中的 batchSize 的第二个值:

hdfs.batchSize  100 number of events written to file before it is flushed to HDFS

如果源速度非常慢,并且希望更频繁地查看事件,则默认值100可能太高。

 类似资料:
  • 我正在尝试使用hdfs水槽运行水槽。hdfs在不同的机器上正常运行,我甚至可以与水槽机器上的hdfs交互,但是当我运行水槽并向其发送事件时,我收到以下错误: 同样,一致性不是问题,因为我可以使用hadoop命令行与hdfs交互(水槽机不是datanode)。最奇怪的是,在杀死水槽后,我可以看到tmp文件是在hdfs中创建的,但它是空的(扩展名仍然是. tmp)。 关于为什么会发生这种情况的任何想法

  • 我遇到了Flume的问题(Cloudera CDH 5.3上的1.5): 我想做的是:每5分钟,大约20个文件被推送到假脱机目录(从远程存储中抓取)。每个文件包含多行,每行是一个日志(在JSON中)。文件大小在10KB到1MB之间。 当我启动代理时,所有文件都被成功推送到HDFS。1分钟后(这是我在flume.conf中设置的),文件被滚动(删除. tmp后缀并关闭)。 但是,当在假脱机目录中找到

  • 我想使用 flume 将数据从 hdfs 目录传输到 hdfs 中的目录,在此传输中,我想应用处理形态线。 例如:我的来源是 我的水槽是 有水槽可能吗? 如果是,源水槽的类型是什么?

  • 我有一个要求,我想运行以假脱机目录作为源的 Flume 代理。将假脱机目录中的所有文件复制到 HDFS(sink) 后,我希望代理停止,因为我知道所有文件都被推送到通道。我还想每次为不同的假脱机目录运行此步骤,并在目录中的所有文件都标记为 .完成。有没有办法停止水槽剂?

  • 我对Flume和/或log4j有问题。我有带log4j和flume appender的JavaEE应用程序=一切都很好,工作正常。 当我用下面的配置运行水槽时,一切都很好。 这里是flume配置文件 如果我将接收器从 hdfs 更改为 file_roll,则水槽代理会创建日志文件,但没有任何内容。这是来自水槽的新 conf-file。 我的错误是什么?

  • 我们可以为HDFS Sink添加分隔符吗?写入文件时,我们如何添加记录分隔符? 以下是配置:-