【问题标题】:Does HBase have it's own structured data (on HDFS)or can it execute on unstructured data on HDFSHBase 是否有自己的结构化数据(在 HDFS 上)或者它可以在 HDFS 上的非结构化数据上执行
【发布时间】:2015-08-30 03:25:44
【问题描述】:

我正在切入 Hadoop 生态系统,并且对 MR、YARN 和 HDFS 有相当的了解。
我正在探索生态系统的其他部分。我相信 HiveQL 可以在 HBase 上以类似 SQL 的方式运行,并且几乎是实时的。如果是这样,我相信需要将 HDFS 上的非结构化数据转换为结构化数据,以便在 HQL 中运行相对快速的查询。这是否意味着数据以非结构化形式存在于 HDFS 中,然后以结构化形式复制到 HDFS 上以供 HBase 和 HQL 使用?
另外,HiveQL 是否可以直接在 HDFS 上以批处理模式(小时..与 Java 作为 MR 作业运行的时间相似)的非结构化数据上运行?

【问题讨论】:

    标签: hadoop hive hbase


    【解决方案1】:

    HBase 是一个键值对存储。它不支持 SQL。

    【讨论】:

      【解决方案2】:

      回答您的问题 1:我认为需要将 HDFS 上的非结构化数据转换为结构化数据,以便在 HQL 中运行相对较快的查询

      HIVE 可以通过将非结构化数据转换为结构化数据来处理这些数据。它提供了一种将结构应用于大量非结构化数据的简单方法,然后对这些数据执行类似 SQL 的批量查询。

      可以从多种格式读取数据,从带有逗号或空格分隔文本的非结构化平面文件,到半结构化 JSON 文件,再到结构化 HBase 表。

      看看这篇文章Log Analysis如何将非结构化日志文件转换为结构化数据并进行处理。

      回答您的问题 2:HiveQL 能否以批处理模式直接在 HDFS 上的非结构化数据上运行(小时......与 Java 作为 MR 作业运行的时间相似)?

      HiveQL 不能直接在非结构化数据上运行。数据在处理之前应转换为结构化形式。参考上面的日志分析示例。

      【讨论】:

        【解决方案3】:

        HiveQL 不能在半结构化数据(一种以上格式的数据)上运行。 HDFS 上的所有数据必须采用相同的格式。该格式可以指定为 Hive 使用的数据库中的元数据,它用于计算 HDFS 中的数据结构。这是作为 HDFS 上的 map reduce 作业执行的,并且确实运行时间很长。
        PIG 是在具有多种格式数据的 HDFS 上运行所需要的。蜂巢无法做到这一点。 PIG 可以做到,因为它是程序化风格。
        您可以使用 map reduce 作业将半结构化数据加载到 HBase。然后在 HBase 上近乎实时地运行 Hive。

        【讨论】:

          猜你喜欢
          • 2017-03-04
          • 1970-01-01
          • 2019-12-10
          • 2021-07-29
          • 2020-06-18
          • 1970-01-01
          • 2021-12-16
          • 1970-01-01
          • 2019-07-31
          相关资源
          最近更新 更多