HBase是否拥有自己的结构化数据(在HDFS上),还是可以在HDFS上的非结构化数据上执行

时间:2015-08-30 03:25:44

标签: hadoop hive hbase

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

  

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

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

请查看本文Log Analysis,了解如何将非结构化日志文件转换为结构化数据并进行处理。

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

HiveQL无法直接在非结构化数据上运行。在处理数据之前,应将数据转换为结构化形式。请参阅上面的Log Analysis示例。

答案 2 :(得分:0)

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