flume ng和hdfs

1sbrub3j  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(442)

我对hadoop非常陌生,所以请原谅这些愚蠢的问题。
我有以下知识hadoop的最佳用例是大文件,这样可以在运行mapreduce任务时提高效率。
记住以上几点,我对flume ng有些困惑。假设我跟踪一个日志文件,并且每秒钟生成一次日志,当日志获得新行时,它将通过flume传输到hdfs。
a) 这是否意味着flume会在我跟踪的日志文件中记录的每一行上创建一个新文件,还是会附加到现有的hdfs文件中??
b) hdfs中首先允许追加吗??
c) 如果b的答案是真的??ie内容是不断追加的,我应该如何以及何时运行我的mapreduce应用程序?
上述问题听起来可能很愚蠢,但如果能回答同样的问题,我们将不胜感激。
ps:我还没有建立FlumeNG或hadoop,只是阅读文章来了解它如何为我的公司增加价值。

carvr3hs

carvr3hs1#

flume通过hdfs sink写入hdfs。当flume启动并开始接收事件时,接收器打开新文件并将事件写入其中。在某个时候,以前打开的文件应该被关闭,在那之前,当前块中正在写入的数据对其他redaer是不可见的。
如文档中所述,flume hdfs sink有几种文件关闭策略:
每n秒(由 rollInterval (可选)
写入n字节后( rollSize (可选)
写入n个接收事件后( rollCount (可选)
n秒不活动后( idleTimeout (可选)
所以,对于你的问题:
a) flume将事件写入当前打开的文件,直到它关闭(并打开新文件)。
b) 在hdfs中允许append,但flume不使用它。关闭文件后,flume不会向其追加任何数据。
c) 要对mapreduce应用程序隐藏当前打开的文件,请使用 inUsePrefix 选项-名称以开头的所有文件 . 乔布斯先生看不到。

相关问题