创建Hive/hbase相关联的表异常

hive> CREATE TABLE hperson(id string, name string,email string) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘ WITH SERDEPROPERTIES ("hbase.columns.mapping" =
":id,cf1:name,cf2:email") TBLPROPERTIES ("hbase.table.name" = "hbperson");、

FAILED: Error in metadata: java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDe: columns has
3 elements while hbase.columns.mapping has 4 elements (counting the key if implicit))

在创建hive/hbase相关联的表时,hbase表结构默认会有一个字段key。假设没有一个显示的字段‘key‘那么在创建表的进修,会自己创建,这样hive相应的表就会出现故障,所以在hive相应的表里一定要加上key这个字段,为了避免这个问题,在hbase表结构里能够显示的加入‘key‘字段,这样不easy出问题。

正确的格式例如以下:

CREATE TABLE hperson1(key string,id string, name string,email string) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘ WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf0:id,cf1:name,cf2:email") TBLPROPERTIES ("hbase.table.name"
= "hbperson1");

或者:

CREATE TABLE hperson1(key string,id string, name string,email string) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘ WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf0:id,cf1:name,cf2:email") TBLPROPERTIES
("hbase.table.name" = "hbperson1");

时间: 2024-10-14 13:08:29

创建Hive/hbase相关联的表异常的相关文章

Hive创建指向HBase表的表

create [external] table t1(id int, value string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties('hbase.column.mapping'=':key,f:name'); 如果想创建一个指向已经存在的HBase表的话,需要使用external 来自为知笔记(Wiz)

创建hive整合hbase的表总结

[Author]: kwu 创建hive整合hbase的表总结,如下两种方式: 1.创建hive表的同步创建hbase的表 CREATE TABLE stage.hbase_news_company_content(key string comment "流水号", news_id string comment "新闻id", news_content string comment "文章内容") STORED BY 'org.apache.ha

表单标签<label>----------------------用for属性 和radio 的id相关联 可以让鼠标点字就相当于点击radio

定义和用法 <label> 标签为 input 元素定义标注(标记). label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label 元素内点击文本,就会触发此控件.就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上. <label> 标签的 for 属性应当与相关元素的 id 属性相同. <form><label for="male">Male</label><

Hbase 无法创建带有snappy压缩属性的表

一.要求 在Hbase 数据库中创建带有snappy压缩属性的表. 二.登陆到hbase 数据库执行建表操作 hbase(main):016:0> create 'dcs:t_dev_history',{NAME => 'f', DATA_BLOCK_ENCODING => 'PREFIX_TREE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => '

hive学习笔记_hive的表创建

创建hive表注意事项 一.表分隔符必须与读取的数据文件一致,比如例子的分隔符为 '\t'(制表符),hive下默认分隔符是制表符. 二.最好指定分区作为数据之间的区分. 三.创建完表可以desc+表明进行查看,字段名称(field),类型(type),common(备注,默认没的话为空). eg: drop table track_log;create table track_log (id string ,url string ,referer string ,keyword string

(转) java实现hbase表创建、数据插入、删除表

近日查看了相关资料后,梳理了一下用java实现hbase的表创建.数据插入.删除表,代码如下: 1.需要的jar包: commons-codec-1.4.jar commons-logging-1.0.4.jar hadoop-0.20.2-core.jar hbase-0.20.6.jar log4j-1.2.15.jar zookeeper-3.2.2.jar 2.代码. 1 package org.myhbase; 2 3 import java.io.IOException; 4 5 i

多表联查时的sql删除语句的写法,即级联删除,将相关联的数据级联删除

mysql多表关联删除 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1 delete from t1 where 条件 2 delete t1 from t1 where 条件 3 delete t1 from t1,t2 where 条件 4 delete t1,t2 from t1,t2 where 条件 前 3者是可行的,第4者不可行. 也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实

Hive HBase 整合

环境说明: l  hadoop:2.4.0 l  Zookeeper:3.4.6 l  Hbase:0.96 l  Hive:0.13.1   1.  Hive整合HBase原理 Hive与HBase整合的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠Hive安装包\apache-hive-0.13.1-bin\lib\hive-hbase-handler-0.9.0.jar工具类,它负责Hbase和Hive进行通信的. Hive和HBase通信原理如下图: 2.  Hive

Hive HBase Integration 集成

官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.在hive/lib目录下找到hive-hbase-handler-1.2.1.jar,并把该文件拷贝到hbase/lib目录下. 2.把hbase/lib目录下的所有*.jar文件拷贝到hive/lib目录下. 3.在hive的配置文件中 hive-site.xml 增加zookeeper的配置集群信息. 1 <property> 2 <nam