hbase到配置单元集成失败

e7arh2l6  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(319)

我在“hbase”表“hbase\u sample”中有行、列族h1,其中有两个值id和name。我想在配置单元中创建带有id和name列的外部表,我不想写行或键字段。

hive> create external table sample (id string,name string)
    > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    > with serdeproperties ("hbase.columns.mapping"=":key,h1:id,h1:name")
    > tblproperties("hbase.table.name"="sample_hbase");

FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: 
MetaException(message:org.apache.hadoop.hive.serde2.SerDeException 
org.apache.hadoop.hive.hbase.HBaseSerDe: columns has 2 elements while 
hbase.columns.mapping has 3 elements (counting the key if implicit))
kxe2p93d

kxe2p93d1#

通过查看错误消息,hbase似乎有rowid、id和name三列。创建包含两列(即id和name)的配置单元表时。创建包含所有三列的配置单元表,并将其命名为table\u name\u temp table。一旦有了临时表,就从配置单元中的临时表创建两列表,然后删除临时表。看看这个解决方案是否适合你。

相关问题