Hadoop 水槽HDFS水槽平齐和滚压之间的差异

Hadoop 水槽HDFS水槽平齐和滚压之间的差异,hadoop,flume,Hadoop,Flume,我在Flume文档中遇到了HDFS接收器的两个配置属性: hdfs.rollCount Number of events written to file before it rolled (0 = never roll based on number of events) 及 我想知道这两个属性之间的区别,以及滚动和齐平的区别。在HDFS接收器中,滚动意味着关闭当前文件并将即将发生的事件写入新文件。在这个水槽中有三种不同的滚动方式,即滚动计数、滚动间隔和滚动大小 批处理用于确定从通道提交的频

我在Flume文档中遇到了HDFS接收器的两个配置属性:

hdfs.rollCount  Number of events written to file before it rolled (0 = never roll based on number of events)


我想知道这两个属性之间的区别,以及滚动和齐平的区别。在HDFS接收器中,滚动意味着关闭当前文件并将即将发生的事件写入新文件。在这个水槽中有三种不同的滚动方式,即滚动计数、滚动间隔和滚动大小


批处理用于确定从通道提交的频率。这在使用文件通道时非常有用。由于每次提交都会从通道中删除事件,因此提交调用越少,对磁盘的随机I/O就越少,吞吐量也就越好

在HDFS接收器中,滚动意味着关闭当前文件并将即将发生的事件写入新文件。在这个水槽中有三种不同的滚动方式,即滚动计数、滚动间隔和滚动大小


批处理用于确定从通道提交的频率。这在使用文件通道时非常有用。由于每次提交都会从通道中删除事件,因此提交调用越少,对磁盘的随机I/O就越少,吞吐量也就越好

滚动意味着接收器将通过从文件名中删除hdfs.inUseSuffix(默认为“tmp”)来关闭当前文件,并将传入事件写入新文件,直到它再次达到限制,整个循环继续

Flush意味着将缓存在内存缓冲区中的N个文件一次性写入HDFS,其中N在HDFS.batchSize中定义。例如,如果hdfs.batchSize定义为100,而不是100个单独的IO操作,则只会发生一次写出所有100个文件的大IO操作,以减少打开和关闭流的IO开销


hdfs.rollCount定义每个文件中的最大事件数,hdfs.batchSize定义内存缓冲区中的最大事件数。在某些场景中,滚动和刷新在达到阈值之前发生,例如,当flume agent关闭时,当前文件将被关闭,而不一定包含hdfs.rollCount事件,内存缓冲区中的所有剩余事件将被刷新到HDFS。

滚动意味着接收器将通过从文件名中删除HDFS.inUseSuffix(默认为“tmp”)来关闭当前文件,并将传入事件写入新文件,直到它再次达到限制,整个循环继续

Flush意味着将缓存在内存缓冲区中的N个文件一次性写入HDFS,其中N在HDFS.batchSize中定义。例如,如果hdfs.batchSize定义为100,而不是100个单独的IO操作,则只会发生一次写出所有100个文件的大IO操作,以减少打开和关闭流的IO开销

hdfs.rollCount定义每个文件中的最大事件数,hdfs.batchSize定义内存缓冲区中的最大事件数。在某些情况下,滚动和刷新发生在达到阈值之前,例如,当flume agent关闭时,当前文件将被关闭,而不一定包含hdfs.rollCount事件,内存缓冲区中的所有剩余事件将被刷新到hdfs

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