Hadoop 水槽NG和HDFS

Hadoop 水槽NG和HDFS,hadoop,hdfs,flume,Hadoop,Hdfs,Flume,我对hadoop非常陌生,所以请原谅这些愚蠢的问题 我有以下知识 Hadoop的最佳用例是大文件,因此在运行mapreduce任务时有助于提高效率 记住以上几点,我对Flume NG有些困惑。 假设我跟踪一个日志文件,每秒钟生成一次日志,当日志获得新行时,它将通过Flume传输到hdfs a) 这是否意味着flume会在我跟踪的日志文件中记录的每一行上创建一个新文件,还是会附加到现有的hdfs文件中 b) hdfs中首先允许追加吗 c) 如果b的答案为真??ie内容不断追加,我应该如何以及何时运

我对hadoop非常陌生,所以请原谅这些愚蠢的问题

我有以下知识 Hadoop的最佳用例是大文件,因此在运行mapreduce任务时有助于提高效率

记住以上几点,我对Flume NG有些困惑。 假设我跟踪一个日志文件,每秒钟生成一次日志,当日志获得新行时,它将通过Flume传输到hdfs

a) 这是否意味着flume会在我跟踪的日志文件中记录的每一行上创建一个新文件,还是会附加到现有的hdfs文件中

b) hdfs中首先允许追加吗

c) 如果b的答案为真??ie内容不断追加,我应该如何以及何时运行mapreduce应用程序

上述问题听起来可能很愚蠢,但如果您能回答同样的问题,我们将不胜感激


PS:我还没有建立Flume NG或hadoop,只是阅读文章来了解它如何为我的公司增加价值。

Flume通过HDFS接收器写入HDFS。当Flume启动并开始接收事件时,接收器打开新文件并将事件写入其中。在某个点上,以前打开的文件应该被关闭,直到那时,正在写入的当前块中的数据对其他redaer是不可见的

如中所述,Flume HDFS接收器有几种文件关闭策略:

  • 每N秒(由
    rollInterval
    选项指定)
  • 写入N字节后(
    rollSize
    选项)
  • 写入N个已接收事件后(
    rollCount
    选项)
  • N秒不活动后(
    idleTimeout
    option)
所以,对于你的问题:

a) Flume将事件写入当前打开的文件,直到文件关闭(新文件打开)

b) Append在HDFS中,但Flume不使用它。关闭文件后,Flume不会向其追加任何数据

c) 要从mapreduce应用程序中隐藏当前打开的文件,请使用
inUsePrefix
选项-名称以
开头的所有文件对MR作业不可见