使用 flume 假脱机目录将整个文件作为单个文件移动到 HDFS

Move whole file into HDFS as single file using flume spooling directory

Aa 就 flume 文档而言,我们可以根据事件大小或事件计数或持续时间将数据移动到 HDFS 中。有什么方法可以将整个文件作为单个文件从假脱机目录移动到 HDFS

Example 
Spooling Dir             HDFS
file1 - 1000 event ----> file1-1000 event
file2 - 1008 event ----> file2 - 1008 event
file3 - 800 event  ----> file3 - 800 event 

谢谢。

嗯,有点。你需要调整你的配置来反映这一点,因为 flume 并不是为了推送整个文件而不管它们的大小,因为你可以更有效地使用 hadoop fs -copyFromLocal 来做到这一点。

以下是您需要配置的内容列表:

a) 批处理通道大小必须小于文件中事件的大小,以防您只是偶尔假脱机文件。否则您的活动可能会停留在您的频道中。

b) hdfs.rollSize = 0 以确保您的文件在任何大小限制后都不会滚动

c) hdfs.rollCount = 0 以确保您的文件不会在发生任何数量的事件后滚动

d) hdfs.rollInterval 设置为适当的数量以确保您的文件 git 按时假脱机。

e) 一次假脱机一个文件以避免混淆。

基本上就是这样。