我有很多日志行,每个都有时间,我想存储在HDFS中并进行分析。我想运行MapReduce作业,它只处理给定时间范围内的行(最后5分钟,最后一小时)。
我正在寻找入门指针。而且,任何替代方案(例如,将行存储在hbase?其他平台?)
答案 0 :(得分:1)
我的2美分:
你可以使用Hbase。读入文件的每一行,取出TS字段并将其用作rowkey,并将该行的其余部分存储在一列中。所以我们的表只有一列。这将允许您进行更快速的范围查询,如您所需(最后5分钟,最后一小时等)。为避免区域服务器热点,您可以创建预分割表。
或者,您可以将数据存储在由TS分区的Hive表中,然后通过HiveQL进行处理。或者根据TS存储数据。简单明了。
HTH
答案 1 :(得分:0)
虽然可以使用Hive / HBase组合的Map / Reduce程序完成日志处理,但Hadoop方法可能不适合频繁处理日志,因为Map / Reduce程序是为批处理而构建的。 Apache Kafka和Storm的组合非常适合处理日志以满足您的要求
您还可以查看此link