使用flume将csv文件写入hdfs

4ioopgfo  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(449)

我正在使用flume将本地文件系统中的许多csv文件写入hdfs。
我想知道什么是flume hdfs sink的最佳配置,这样本地系统上的每个文件都将在hdfs中作为csv准确复制。我希望flume处理的每个csv文件都是单个事件,作为单个文件刷新和写入。尽可能地,我希望文件是完全一样的,没有头的东西等。
我需要在这些值上添加什么来模拟我想要的行为?

hdfs.batchSize = x
hdfs.rollSize = x
hdfs.rollInterval = x
hdfs.rollCount = x

请提供如果有其他flume代理配置变量,我也需要更改。
如果使用现有配置无法实现这一点,我是否需要使用自定义接收器来实现我想要的?
谢谢你的意见。
p、 我知道hadoop fs-put或-copyfromlocal更适合这个工作,但是因为这是一个概念证明(表明我们可以使用flume进行数据接收),所以我需要使用flume。

z4iuyo4d

z4iuyo4d1#

必须通过将值设置为0来禁用所有roll*属性。这将有效地防止flume翻滚文件。正如您可能已经注意到的,flume以每个事件为基础进行操作,在大多数情况下,事件是文件中的一行。为了保存文件结构本身,您需要使用spool dir源并激活fileheader:

fileHeader  false   Whether to add a header storing the absolute path filename.

设置为真。它将提供一个%{file}属性,您可以在hdfs接收器路径规范中引用该属性。

相关问题