hive與hbase之間資料的同步

2021-10-10 12:50:25 字數 2873 閱讀 7196

資料同步是很多公司在做資料遷移時的乙個痛點,當然網際網路公司有自己的同步機制或者工具,但是困惑了我這幾天的需求,還是沒有得到解決,事已至此,來寫這篇部落格記錄一下自己最近的研究成果。

hive如何與hbase直接實現資料同步呢,目前有兩種方案:

1.適用場景

資料量不大4t以下(因為需要走hbase的api匯入資料);

2.連線方式

從hbase頁面獲取zk連線位址(http://hadoop102:16010

),並用下述方式啟動hive客戶端;

3.同步方式:

(1)如果hbase表不存在的情況下:

create table tmp_hive_hbase_table(id string, val string) 

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

tblproperties ("hbase.table.name" = "tmp_hbase_table",

"hbase.mapred.output.outputtable" = "tmp_hbase_table");

-- 建立hive的普通表

create table tmp_hive_data(id int,val string);

-- 新增3條資料

(2)如果hbase存在的情況下使用外部表的形式進行同步,其他步驟跟同上一樣;

create external table tmp_hive_hbase_external_table(key int, value string) 

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

tblproperties ("hbase.table.name" = "tmp_hbase_table",

"hbase.mapred.output.outputtable" = "tmp_hbase_table");

適用場景

該方式適合大資料量的情況下使用,官方建議資料量大(4t以上),視情況而定。

2.把hive資料轉換為hfile

該方式先把hive資料轉換成hfile檔案上傳至hdfs上,通過阿里提供的bulkload工具去hdfs上載入hfile檔案,解析併入habse資料庫;

(1)啟動hive並新增相關hbase的jar包,一定要add以下的jar包,否則報hivehfileoutputformat錯;

add jar /***/lib/hive-hbase-handler-2.3.3.jar;

add jar /***/lib/hbase-common-1.1.1.jar;

add jar /***/lib/hbase-client-1.1.1.jar;

add jar /***/lib/hbase-protocol-1.1.1.jar;

add jar /***/lib/hbase-server-1.1.1.jar;

(2)建立乙個outputformat為hivehfileoutputformat的hive表

配置habse集群的位址

大資料 Hive與HBase

hive hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能。hbase hbase是hadoop的資料庫,乙個分布式 可擴充套件 大資料的儲存。hbase和hive在大資料架構中處在不同位置,hbase主要解決實時資料查詢問題,hiv...

注意區分HBase與Hive之間的定義和區別

apache hbase 是hadoop資料庫,是乙個分布式,可擴充套件的大資料儲存。當您需要對大資料進行隨機,實時讀 寫訪問時,請使用apache hbase apache hbase是乙個開源的,分布式的,版本化的非關聯式資料庫,apache hive 資料倉儲軟體有助於使用sql讀取,編寫和管...

Oracle Tablespace之間資料遷移

size large 分割槽表常用的資料字典 分割槽表資訊 dba part tables 顯示分割槽 dba tab partitions 顯示子分割槽 dba tab subpartitions 顯示分割槽列 dba part key columns 顯示子分割槽列 dba subpart de...