【问题标题】:Hadoop Hbase workflowHadoop Hbase 工作流程
【发布时间】:2012-04-05 20:27:24
【问题描述】:

我对 hadoop 还比较陌生,我通过做一些示例练习来了解它,但我对它在实践中的使用方式存在疑问。很多应用程序似乎都面向批处理(例如日志文件数据),但我不确定 hbase 如何适合这里?

将日志文件数据存储在hbase中,然后处理并输出为其他存储格式是常见的吗?将原始日志文件传递到 hadoop 然后将输出存储在 hbase 中是否更常见?我想我这里真正的问题通常是 hbase 用作 hadoop 的输入或输出,或两者兼而有之?

【问题讨论】:

    标签: hadoop hbase


    【解决方案1】:

    HBase 可用于您需要随机、低延迟访问数据的任何地方,而 Hadoop 生态系统的其余大部分都是面向批处理的,正如您所提到的。

    要使用您的日志解析示例,您可以通过 MapReduce 处理存储在 HDFS 中的日志文件,但是接下来呢?大概您想查看一段时间内的流量模式(分钟、小时、天等)。如果将结果以时间戳作为行键存储在 HBase 中,那么您可以有效地查询特定日期范围(例如,“显示上周的所有数据。”)HBase 将比经典更快地返回MapReduce,因为它不需要扫描上个月、去年等的所有数据,而 MapReduce 则需要。

    【讨论】:

    • 这是有道理的。是否存在您可能希望将输入数据存储在 hbase 中的情况?
    • 当然——例如,如果你有多台机器在编写,HBase 可以很好地处理这个问题。如果您正在运行 MapReduce 作业来处理您的日志,如果这些作业在 HBase RegionServers 上同时运行 Mappers 和 Reducers(输入和输出),那么这些作业将更加高效,因为这样就不太可能需要复制数据网络到目标存储节点。
    【解决方案2】:

    Flume 是很多人连接日志文件的方式,以便在数据生成时对其进行实时处理。您可以从每个日志文件创建一个源并同步到您的 HBase 实例

    还可以看看 OpenTSDB,因为他们有一个非常好的系统,可以在 HBase 之上存储集群指标。您或许可以重用他们的一些基础架构来进行日志分析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      相关资源
      最近更新 更多