使用 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) 一次假脱机一个文件以避免混淆。
基本上就是这样。
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) 一次假脱机一个文件以避免混淆。
基本上就是这样。