我有很多日志行,每个都有一个时间,我想存储在hdfs中并进行分析。我想运行mapreduce作业,它将在给定的时间范围内(过去5分钟,最后一小时)只处理行。我正在寻找开始的指针。还有其他选择(例如,将行存储在hbase中?其他平台?)
68bkxrlz1#
虽然日志处理可以用map/reduce程序结合hive/hbase来完成,但是hadoop方法可能不适合频繁地处理日志,因为map/reduce程序是为批处理而构建的。apachekafka和storm的组合非常适合处理满足您需求的日志你也可以看看这个链接
yacmzcpb2#
我的2美分:你可以用hbase。读入文件的每一行,取出ts字段并将其用作行键,然后将行的其余部分存储在列中。所以我们的表只有一列。这将允许您执行更快的范围查询,如您所需(最后5分钟、最后一小时等)。为了避免regionserver热插拔,您可以创建预拆分的表。或者,您可以将数据存储在由ts分区的配置单元表中,然后通过hiveql进行处理。或者根据ts存储数据。简单明了。hth公司
2条答案
按热度按时间68bkxrlz1#
虽然日志处理可以用map/reduce程序结合hive/hbase来完成,但是hadoop方法可能不适合频繁地处理日志,因为map/reduce程序是为批处理而构建的。apachekafka和storm的组合非常适合处理满足您需求的日志
你也可以看看这个链接
yacmzcpb2#
我的2美分:
你可以用hbase。读入文件的每一行,取出ts字段并将其用作行键,然后将行的其余部分存储在列中。所以我们的表只有一列。这将允许您执行更快的范围查询,如您所需(最后5分钟、最后一小时等)。为了避免regionserver热插拔,您可以创建预拆分的表。
或者,您可以将数据存储在由ts分区的配置单元表中,然后通过hiveql进行处理。或者根据ts存储数据。简单明了。
hth公司