1

我有很多日志行,每行都有时间,我想存储在 HDFS 中并进行分析。我想运行 MapReduce 作业,它只处理给定时间范围内的行(最后 5 分钟,最后一小时)。

我正在寻找入门指南。并且,任何替代方案(例如,将行存储在 hbase 中?其他平台?)

4

2 回答 2

1

我的 2 美分:

您可以为此使用 Hbase。读入文件的每一行,取出 TS 字段并将其用作行键并将该行的其余部分存储在一列中。所以我们的表只有一列。这将允许您根据需要(最后 5 分钟、最后一小时等)进行更快的范围查询。并且为了避免 regionserver 热点,您可以创建预拆分表。

或者,您可以将数据存储在由 TS 分区的 Hive 表中,然后通过 HiveQL 进行处理。或者根据 TS 对数据进行分桶。简单明了。

高温高压

于 2013-05-13T20:53:14.937 回答
0

虽然日志处理可以通过结合 Hive/HBase 的 Map/Reduce 程序来完成,但 Hadoop 方法可能不适合频繁处理日志,因为 Map/Reduce 程序是为批处理而构建的。Apache KafkaStorm的组合非常适合根据您的要求处理日志

你也可以看看这个链接

于 2013-05-15T03:06:35.653 回答