自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hive和HBase整合

大數(shù)據(jù)
Hive和Hbase有各自不同的特征:hive是高延遲、結(jié)構(gòu)化和面向分析的,hbase是低延遲、非結(jié)構(gòu)化和面向編程的。Hive數(shù)據(jù)倉庫在hadoop上是高延遲的。Hive集成Hbase就是為了使用hbase的一些特性。

[[175743]]

Hive和Hbase有各自不同的特征:hive是高延遲、結(jié)構(gòu)化和面向分析的,hbase是低延遲、非結(jié)構(gòu)化和面向編程的。Hive數(shù)據(jù)倉庫在hadoop上是高延遲的。Hive集成Hbase就是為了使用hbase的一些特性。

Hive繼承HBase可以有效利用HBase數(shù)據(jù)庫的存儲特性,如行更新和列索引等。在集成的過程中注意維持HBase jar包的一致性。Hive集成HBase需要在Hive表和HBase表之間建立映射關(guān)系,也就是Hive表的列和列類型與HBase表的列族及列限定詞建立關(guān)聯(lián)。每一個在Hive表中的域都存在與HBase中,而在Hive表中不需要包含所有HBase中的列。HBase中的rowkey對應(yīng)到Hive中為選擇一個域使用 :key 來對應(yīng),列族(cf:)映射到Hive中的其他所有域,列為(cf:cq)。

下面來簡單實戰(zhàn)下:

創(chuàng)建HBase表

  1. create 'user1',{NAME => 'info',VERSIONS => 1} 

向user表中插入一些數(shù)據(jù)

  1. put 'user1','1','info:name','zhangsan' 
  2. put 'user1','1','info:age','25' 
  3. put 'user1','2','info:name','lisi' 
  4. put 'user1','2','info:age','22' 
  5. put 'user1','3','info:name','wangswu' 
  6. put 'user1','3','info:age','21' 

使用scan命令來查看下user表中的數(shù)據(jù)

  1. scan 'user'; 

結(jié)果如下

ROW COLUMN+CELL

1 column=info:age, timestamp=1476773051604, value=25

1 column=info:name, timestamp=1476773046344, value=zhangsan

2 column=info:age, timestamp=1476773051685, value=22

2 column=info:name, timestamp=1476773051661, value=lisi

3 column=info:age, timestamp=1476773052632, value=21

3 column=info:name, timestamp=1476773051709, value=wangswu

3 row(s) in 0.0610 seconds

創(chuàng)建Hive中與HBase中對應(yīng)的表

  1. SET hbase.zookeeper.quorum=hadoop001
  2. SET zookeeper.znode.parent=/hbase; 
  3. ADD jar /opt/bigdata/hive-1.2.1-bin/lib/hive-hbase-handler-1.2.1.jar; 
  4. // user1表 
  5. CREATE EXTERNAL TABLE user1 ( 
  6. rowkey string, 
  7. info map<STRING,STRING> 
  8. ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
  9. WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:") 
  10. TBLPROPERTIES ("hbase.table.name" = "user1"); 
  11. // user2表 
  12. CREATE EXTERNAL TABLE user2 ( 
  13. rowkey string, 
  14. name string, 
  15. age int 
  16. ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
  17. WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:age") 
  18. TBLPROPERTIES ("hbase.table.name" = "user2"); 

查詢user1,user2表數(shù)據(jù)

查詢user1表數(shù)據(jù)

  1. select * from user1; 

結(jié)果如下

  1. OK 
  2. 1       {"age":"25","name":"zhangsan"} 
  3. 2       {"age":"22","name":"lisi"} 
  4. 3       {"age":"21","name":"wangswu"} 
  5. Time taken: 0.467 seconds, Fetched: 3 row(s) 

查詢user2表數(shù)據(jù)

  1. select * from user2; 

結(jié)果如下:

  1. OK 
  2.  
  3. 1 zhangsan 25 
  4.  
  5. 2 lisi 22 
  6.  
  7. 3 wangswu 21 
  8.  
  9. Time taken: 0.087 seconds, Fetched: 3 row(s) 

hive插入數(shù)據(jù)到hbase

  1. INSERT INTO TABLE user1 
  2. SELECT '4' AS rowkey, 
  3. map('name','lijin','age','22') AS info 
  4. from dual limit 1; 
責任編輯:趙寧寧 來源: dxer
相關(guān)推薦

2017-07-28 09:11:14

HIVEHBASE區(qū)別

2018-05-21 21:26:59

Apache HiveHbaseSQL

2009-06-19 10:00:37

Struts和Spri

2018-09-18 14:43:30

HBase查詢數(shù)據(jù)

2024-10-31 13:56:30

FastAPIGradioDjango

2009-07-03 13:31:07

PHP和JSPApache處理

2020-11-19 10:30:28

Linux

2023-10-07 12:06:52

2011-09-15 09:49:57

HBase

2011-08-29 10:15:13

FacebookHadoopHBase

2013-11-01 10:36:22

數(shù)據(jù)中心遷移整合

2011-08-23 13:33:24

2009-07-21 16:49:41

整合iBatis和SpSqlMapClien

2010-08-06 10:56:11

Flex4MyEclipse

2016-09-01 13:48:18

2023-03-30 09:06:20

HiveSpark大數(shù)據(jù)

2011-07-19 15:14:07

VMware

2019-09-03 15:36:58

ApacheTomcat配置

2020-07-08 13:46:27

ApacheTomcat配置

2010-06-03 13:55:38

Hbase和Hadoo
點贊
收藏

51CTO技術(shù)棧公眾號