本文共 1783 字,大约阅读时间需要 5 分钟。
hbase、hive已搭配高可用
未在hive-env.sh中,配置hbase的路径: 需要添加hbase的路径:在配置hive服务端的机子上启动hive服务端
bin/hive --service metastore
在配置hive客户端的机子上启动hive客户端
bin/hive
注:在配置hive的目录下启动
-- 创建一张表,有两列,key int,另外一个是value string类型CREATE TABLE hbase_table_1(key int, val string)-- 这个代码写死 STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'-- hive的表与hbase的键和值,如何映射WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")-- 在hbase中的表名TBLPROPERTIES ("hbase.table.name" = "mydata:hbase_table_1", "hbase.mapred.output.outputtable" = "mydata:hbase_table_1");
注:前提是,hbase得有mydata这个namespace
添加数据 insert into hbase_table_1 values (1,‘20’) ;-- 创建一张表,有4列,-- 第一列:整数:rowkey-- 第二列:值-- 第三列:值-- 第四列:值CREATE TABLE hbase_table_2(key int, value1 string, value2 int, value3 int) -- 写死STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'-- hive的表和hbase的映射关系WITH SERDEPROPERTIES (-- hbase的列的写法和hive的列的写法是一样的(四列)-- 有两个a,这是一个列族,d:也是一个列族"hbase.columns.mapping" = ":key,a:b,a:c,d:e")-- 在hbase中的表名TBLPROPERTIES ("hbase.table.name" = "mydata:hbase_table_2", "hbase.mapred.output.outputtable" = "mydata:hbase_table_2");
添加数据
INSERT into TABLE hbase_table_2 values (1,'val1',3,4) ;
-- 创建一张表,有2列,-- 第一列:map;(键和值)-- 第二列:rowkeyCREATE TABLE hbase_table_3(value map, row_key int) -- 这行代码是写死的STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'-- hbase的列的写法和hive的列的写法是一样的(四列)-- 有两个a,这是一个列族,d:也是一个列族WITH SERDEPROPERTIES (-- cf是列族,列族下面有很多列,期望:map的键就是列的名字,map的值就是列的值"hbase.columns.mapping" = "cf:,:key")-- 在hbase中的表名TBLPROPERTIES ("hbase.table.name" = "mydata:hbase_table_3", "hbase.mapred.output.outputtable" = "mydata:hbase_table_3");
添加数据
INSERT into TABLE hbase_table_3 values (map('test_key',2), 1 ) ;INSERT into TABLE hbase_table_3 values (map('test_key',2,'test_ke1',3), 2 ) ;
转载地址:http://tgrzi.baihongyu.com/