我还是比较新的hadoop,我一直在通过做一些示例练习来学习它,但我对如何在实践中使用它有疑问。许多应用程序似乎都面向批处理(例如日志文件数据),但我不确定hbase如何适应这里?
将日志文件数据存储在hbase中然后处理并输出到其他存储格式是否常见?将原始日志文件传递给hadoop然后将输出存储在hbase中更常见吗?我想这里我真正的问题通常是hbase用作hadoop的输入或输出,或两者兼而有之?
答案 0 :(得分:4)
HBase适用于需要对数据进行随机,低延迟访问的任何地方,而Hadoop生态系统的其他大部分都是面向批处理的。
要使用您的日志解析示例,您可以通过MapReduce处理存储在HDFS中的日志文件,但是呢?大概你想看到一段时间内的交通模式(分钟,小时,天,等等)。如果将结果存储在HBase中并将时间戳作为行键,那么您可以有效地查询特定的日期范围(例如,“显示上周的所有数据。”)HBase将比经典更快地返回MapReduce,因为它不需要扫描去年,去年等所有数据,而MapReduce会这样做。
答案 1 :(得分:2)
Flume是很多人如何连接他们的日志文件,以便在生成数据时对其进行实时处理。您可以从每个日志文件创建源并与HBase实例同步
另请参阅OpenTSDB,因为它们有一个非常好的系统,用于在HBase之上存储群集指标。您可以重用其部分基础架构来进行日志分析。