1、Hbase中test表就是需要在Hive中查看的表
2、在Hive中创建external table
-
hbase(main):006:0> scan 'test'
-
ROW COLUMN+CELL
-
row-01 column=cf1:id, timestamp=1442020353563, value=1
-
row-01 column=cf1:name, timestamp=1442020382276, value=aaa
-
row-02 column=cf1:id, timestamp=1442020360143, value=2
-
row-02 column=cf1:name, timestamp=1442020388494, value=bbb
-
row-03 column=cf1:id, timestamp=1442020364496, value=3
-
row-03 column=cf1:name, timestamp=1442020393616, value=ccc
-
row-04 column=cf1:id, timestamp=1442020369002, value=4
-
row-04 column=cf1:name, timestamp=1442020398557, value=ddd
-
row-05 column=cf1:id, timestamp=1442020373493, value=5
-
row-05 column=cf1:name, timestamp=1442020404131, value=eee
- 5 row(s) in 0.0680 seconds
-
grid@master1:~$ hive
-
-
Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-1.2.1.jar!/hive-log4j.properties
-
hive> create external table hbase_test
-
> (key string, id string, name string)
-
> stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
-
> with serdeproperties ("hbase.columns.mapping" =":key,cf1:id,cf1:name")
-
> tblproperties("hbase.table.name" = "test");
-
OK
- Time taken: 2.177 seconds
key代表行;
id是Hbase中表test,cf1列族中的id列
name是Hbase中表test,cf1列族中的name列
3、在Hive中使用select查看创建的表
-
hive> select * from hbase_test;
-
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.mapred.JobConf.unset(Ljava/lang/String;)V
-
at org.apache.hadoop.hive.ql.io.HiveInputFormat.pushFilters(HiveInputFormat.java:438)
-
at org.apache.hadoop.hive.ql.exec.FetchTask.initialize(FetchTask.java:77)
-
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:456)
-
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:308)
-
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1122)
-
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1170)
-
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059)
-
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049)
-
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:213)
-
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:165)
-
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:376)
-
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:736)
-
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
-
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-
at java.lang.reflect.Method.invoke(Method.java:606)
- at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
报错NoSuchMethodError: org.apache.hadoop.mapred.JobConf.unset,输入信息的意思应该是Hbase中没有unset类,我现在使用的 Hive版本是1.2.1,可能是Hive版本过高的原因,更换Hive-0.9版本。
4、换了低版本的Hive之后,再次查看表的数据。
-
hive> show tables;
-
OK
-
hbase_test
-
Time taken: 0.083 seconds
-
hive> select * from hbase_test;
-
OK
-
row-01 1 aaa
-
row-02 2 bbb
-
row-03 3 ccc
-
row-04 4 ddd
-
row-05 5 eee
- Time taken: 0.329 seconds
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12219480/viewspace-1801481/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12219480/viewspace-1801481/
本文详细介绍了如何在HBase中创建一个测试表,并通过Hive查询该表的具体步骤。首先展示了HBase中test表的数据结构,接着演示了如何在Hive中创建一个外部表来映射HBase中的test表,最后解决了查询过程中出现的错误并成功显示了表中的数据。
5371

被折叠的 条评论
为什么被折叠?



