初涉Hive,因此只能踏踏实实按部就班的仿照教程联系。记录下学习过程,帮助加深印象。
1)使用如下命令将现有的HBase表interest映射为Hive表hbase_interest_temp
这里需要做些说明和解释:
在这一步操作中,创建了一张外部hive表,用它来映射一张已有的HBase表。外部Hive表使用create external table语句来定义。在删除外部表时,HBase中的数据并不会被删除掉。若要在HBase上创建一张Hive表,需要使用org.apache.hadoop.hive.hbase.HBaseStorageHandler类作为其存储处理类。我们必须使用一个逗号分隔hbase.columns.mapping字符串来将每个hive列映射为对应的hbase列或者列族。注意:各项之间不能包含有空白字符。在映射HBase行键时,必须使用:key来表示。没有必要对每个HBase列都进行映射,只要映射那些Hive需要访问的列就可以了。Hbase.table.name是一个可选属性,如果不指定该属性,该表就会在Hive和HBase中使用相同的名字。( 大多数情况下,每个Hive查询都会被翻译为一个mapreduce任务。)
2)通过上一步在Hive中映射的那张表查询HBase表的数据
可以看出,Hive中所使用的语言就是和SQL很类似的语言。
想通过hive查看HBase表的全部内容:
下图是通过HBase shell查看到的HBase中的表
接下来从Hive接口去查看HBase中的表:
3)小结:Hive作为HBase批量处理数据的一个交互接口,使用类SQL语言,因此 这就使得熟悉数据库操作的程序员易于上手和掌握。但是虽然Hive在批量查询处理有很好的效率,但是却不适合那些对实效性要求严的场合,因为它每次的运行 都要跑一个mapreduce程序,这个过程是耗时的。
注:主要参考《HBase管理指南》
原文链接:http://blog.chinaunix.net/uid-27177626-id-4640788.html