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/