我在2节点hadoop上运行hive和hbase。我使用hadoop-0.20.205.0、hive-0.9.0、hbase-0.92.0和zookeeper-3.4.2。
hive和hbase分别工作得很好。然后我按照这本手册集成了hive和hbase。
hive启动时没有错误,我创建了示例表
CREATE TABLE hbase_table_1(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbas
我看到了一个存储HBase数据的外部Hive表:
CREATE EXTERNAL TABLE IF NOT EXISTS ods.demo_table(
rowkey String COMMENT 'rowkey of hbase',
....
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:...") TBLPROPER
我正在尝试将hive与Hbase集成在一起。我正在使用pivotal VM
add jar /usr/lib/gphd/hive/lib/hive-hbase-handler-0.12.0-gphd-3.0.0.0.jar
add jar /usr/lib/gphd/hive/lib/guava-11.0.2.jar;
add jar /usr/lib/gphd/hbase/lib/hbase-common.jar;
add jar /usr/lib/gphd/zookeeper/zookeeper.jar;
add jar /usr/lib/gphd/hbase/lib/protobuf-j
我指的是Hive-HBase集成的。
首先,我验证了HBase中没有名为ORDERS_HIVE_DUMMY的表:
hbase(main):016:0> describe 'ORDERS_HIVE_DUMMY'
ERROR: Failed to find table named ORDERS_HIVE_DUMMY
Here is some help for this command:
Describe the named table. For example:
hbase> describe 't1'
然后我启动了hive shell:
hdu
我在HBase中有一个表,我希望将其表示为hive中的EXTERNAL TABLE
到目前为止,我一直在使用:
CREATE EXTERNAL TABLE events(key STRING, day INT, source STRING, ip STRING)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,c:date#b,c:source,c:ipAddress")
我有一个hbase表,我想把它映射到一个hive表。问题是,当我在hive中使用外部表时,它会完成,但当我想在hive中创建内部表时,它会抛出一个异常:
message:Table yourtable *already exists within HBase*; use CREATE EXTERNAL TABLE instead to register it in Hive
使用的命令:
CREATE TABLE A
(key string, date_time timestamp)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseSto