HBase與Hive的整合案例一

2021-08-31 01:18:18 字數 2765 閱讀 1856

1.hive與hbase的對比

hive

1)資料倉儲

hive 的本質其實就相當於將 hdfs 中已經儲存的檔案在 mysql 中做了乙個雙射關係,以方便使用 hql 去管理查詢

2)用於資料分析、清洗

hive 適用於離線的資料分析和清洗,延遲較高

3)基於 hdfs、mapreduce

hive 儲存的資料依舊在 datanode 上,編寫的 hql 語句終將是轉換為 mapreduce **執行

hbase

1)資料庫

是一種面向列儲存的非關係型資料庫

2)用於儲存結構化和非結構話的資料

適用於單錶非關係型資料的儲存,不適合做關聯查詢,類似 join 等操作

3)基於 hdfs

資料持久化儲存的體現形式是 hfile,存放於 datanode 中,被 resionserver 以 region 的形式進行管理

2.案例一

1)案例需求

建立一張hive 表,關聯到hbase表,插入資料到 hive 表的同時能夠同步資料到hbase表

2)建立hive表的同時關聯到hbase

create table hive_hbase(

empno int,

ename string,

job string,

mgr int,

hiredate string,

sal double,

comm double,

deptno int)

stored by 'org.apache.hadoop.hive.hbase.hbasestoragehandler'

":key,info:ename,info:job,info:mgr,info:hiredate,info:sal,info:comm,info:deptno")

tblproperties ("hbase.table.name" = "hbase_hive");

上邊步驟之後進入hive和hbase中檢視表hive_hbase和hbase_hive是否建立成功

3)在hive中建立臨時表,用於load資料到表中

不能直接load資料到關聯了hbase的那張表中,因為load是不執行mapreduce的,所以必須通過一張臨時表來實現

create table emp(

empno int,

ename string,

job string,

mgr int,

hiredate string,

sal double,

comm double,

deptno int)

row format delimited fields terminated by '\t';

4)向hive的臨時表中load資料

load data local inpath '/opt/package/hive/txt/emp.txt' into table emp;
emp.txt檔案中的資料:

7369	smith	clerk	7902	1980-12-17	800.00		20

7499 allen salesman 7698 1981-2-20 1600.00 300.00 30

7521 ward salesman 7698 1981-2-22 1250.00 500.00 30

7566 jones manager 7839 1981-4-2 2975.00 20

7654 martin salesman 7698 1981-9-28 1250.00 1400.00 30

7698 blake manager 7839 1981-5-1 2850.00 30

7782 clark manager 7839 1981-6-9 2450.00 10

7788 scott analyst 7566 1987-4-19 3000.00 20

7839 king president 1981-11-17 5000.00 10

7844 turner salesman 7698 1981-9-8 1500.00 0.00 30

7876 adams clerk 7788 1987-5-23 1100.00 20

7900 james clerk 7698 1981-12-3 950.00 30

7902 ford analyst 7566 1981-12-3 3000.00 20

7934 miller clerk 7782 1982-1-23 1300.00 10

5)將臨時表中的資料通過insert命令匯入到與hbase關聯的那張表中去(hive_hbase表)

insert into table hive_hbase select * from emp;
這時候你會發現會執行mapreduce  

6)檢視hive和hbase中的表是否已經同步了資料

select *from hive_hbase;

scan 'hbase_hive'

HIVE與HBase的整合

可以把hive整合hbase需要的jar包拷貝到hive lib目錄下面 1 hbase server 0.98 6 cdh5.3.6.jar 2 hbase client 0.986 cdh5.3.6.jar 3 hbase potocol 0.98 6 cdh5.3.6.jar 4 hbase ...

Hbase與Hive的整合

環境準備 因為我們後續可能會在操作hive的同時對hbase也會產生影響,所以hive需要持有操作hbase的jar,那麼接下來拷貝hive所依賴的jar包 或者使用軟連線的形式 export hbase home opt module hbase export hive home opt modu...

Hive 五 hive與hbase整合

配置 hive 與 hbase 整合的目的是利用 hql 語法實現對 hbase 資料庫的增刪改查操作,基本原理就是利用兩者本身對外的api介面互相進行通訊,兩者通訊主要是依靠hive hbase handler.jar工具類。但請注意 使用hive操作hbase中的表,只是提供了便捷性,前面章節已...