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中的表,只是提供了便捷性,前面章節已...