hive和hbase如何實現互通

2021-10-09 19:16:28 字數 3710 閱讀 1971

3.檢視hbase的表

這裡多了乙個list01

hbase(main):006:0> list

table

lijie

lijie01

2 row(s) in 0.0160 seconds

=> [「lijie」, 「lijie01」]12

3456

74.建立乙個hive臨時並插入資料

#建立臨時表

hive> create table lijietemp(

> key string,

> name string

> )

> row format delimited fields terminated by 『,』

> stored as textfile;

oktime taken: 0.292 seconds

#向臨時表插入資料

hive> load data local inpath 『/home/hadoop/test.txt』 overwrite into table lijietemp;

loading data to table default.lijietemp

table default.lijietemp stats: [numfiles=1, numrows=0, totalsize=35, rawdatasize=0]

oktime taken: 0.38 seconds12

3456

78910

1112

1314

1516

175.向hive中的hbase對映表hbase01中插入資料

hive> insert into hbase01 select * from lijietemp;12

6.檢視hive中的資料,以及hbase中的資料(資料應該一致)

hive資料檢視:

hive> select * from hbase01;

ok1001 lijie

1002 zhangsan

1003 lisi

time taken: 0.175 seconds, fetched: 3 row(s)12

3456

7hbase資料檢視:

hbase(main):007:0> scan 『lijie01』

row column+cell

1001 column=cf1:name, timestamp=1487149773218, value=lijie

1002 column=cf1:name, timestamp=1487149773218, value=zhangsan

1003 column=cf1:name, timestamp=1487149773218, value=lisi

3 row(s) in 0.4880 seconds12

3456

77.利用hbase向表中新增資料,檢視hive中的資料是否一致

hbase表中插入資料:

hbase(main):008:0> put 『lijie01』,『1004』,『cf1:name』,『hbaseputdata』

0 row(s) in 0.2580 seconds12

檢視hive表中是否一致(發現也多了上面新增的資料):

hive> select * from hbase01;

ok1001 lijie

1002 zhangsan

1003 lisi

1004 hbaseputdata

time taken: 0.124 seconds, fetched: 4 row(s)12

3456

788.hive對映hbase中已經存在的表,先在hbase中建立乙個表,並且插入資料

建表:hbase(main):010:0> create 『lijie02』,『cf1』,『cf2』

0 row(s) in 0.4530 seconds

=> hbase::table - lijie0212

34插入一條測試資料:

hbase(main):011:0> put 『lijie02』,『0000001』,『cf1:name』,『lijie』

0 row(s) in 0.0820 seconds

11.測試向hive中新增資料

再建立乙個hive臨時表

hive>

> create table lijietemp1(

> key string,

> name string,

> age int

> )

> row format delimited fields terminated by 『,』

> stored as textfile;12

3456

789新增資料

hive> load data local inpath 『/home/hadoop/test.txt』 overwrite into table lijietemp1;

loading data to table default.lijietemp1

table default.lijietemp1 stats: [numfiles=1, numrows=0, totalsize=44, rawdatasize=0]

oktime taken: 0.271 seconds12

3456

向hive中插入資料

hive> insert into hbase02 select * from lijietemp1;12

11.檢視hive表中的資料和hbase的資料是否同步

hive表查詢結果:

hive> select * from hbase02;

ok0000001 lijie 24

1001 lijie 24

1002 zhangsan 25

1003 lisi 26

time taken: 0.097 seconds, fetched: 4 row(s)12

3456

78hbase表查詢結果:

hbase(main):014:0> scan 『lijie02』

row column+cell

0000001 column=cf1:name, timestamp=1487151262045, value=lijie

0000001 column=cf2:age, timestamp=1487151262045, value=24

1001 column=cf1:name, timestamp=1487151621148, value=lijie

1001 column=cf2:age, timestamp=1487151621148, value=24

1002 column=cf1:name, timestamp=1487151621148, value=zhangsan

1002 column=cf2:age, timestamp=1487151621148, value=25

1003 column=cf1:name, timestamp=1487151621148, value=lisi

1003 column=cf2:age, timestamp=1487151621148, value=26

4 row(s) in 0.0350 seconds12

3456

78910

1112

13結果hbase表的資料和hive表中的資料一致

和hbase對映 hbase整合hive

hive提供了與hbase的整合,是的能夠在hbase表上使用hive sql語句進行查詢 插入操作以及進行join和union等複雜查詢 同時也可以將hive表中的資料對映到hbase中。當我們在使用hive時候,在資料量多的時候就會發現非常的慢,乙個簡單的sql都要半天,其實我們追尋他的原因很簡...

Hive和MySQL資料互導

用sqoop進行hive和mysql之間的資料互導 use anticheat create table anticheat blacklist userid varchar 30 primary key dt int,update time timestamp,delete flag int,op...

Hive和HBase的區別

hive是為了簡化編寫mapreduce程式而生的,使用mapreduce做過資料分析的人都知道,很多分析程式除業務邏輯不同外,程式流程基本一樣。在這種情況下,就需要hive這樣的使用者程式設計介面。hive本身不儲存和計算資料,它完全依賴於hdfs和mapreduce,hive中的表純邏輯,就是些...