乾貨總結 Hive 資料匯入 HBase

2021-09-16 12:18:20 字數 1317 閱讀 4573

思路是用 hbase 自帶的 importtsv 工具。

建表語句, 要用文字格式, 即 tsv 格式, 分割符可以自己定義

create table if not exists tablea(

rowkey string,

...)partitioned by(dt string) -- format: 2017-06-01

row format delimited

fields terminated by '\t'

lines terminated by '\n'

stored as textfile;

跑批語句, 注意設定不要compress,否則 importtsv 工具無法識別

set hive.exec.compress.output=false;

insert overwrite table tablea

partition( tx_date = \"$calc_date\" )

select ..

hbase --config config_dir org.apache.hadoop.hbase.mapreduce.importtsv \

-dmapreduce.job.queuename=queue \

-dimporttsv.bulk.output=hdfs:///hfile_path \

-dimporttsv.columns="hbase_row_key,column_family:column_name.." \

hbase_namespace:table_name \

hdfs://hive_table_dir

這個步驟importtsv 會去讀取 hive_table_dir 中的檔案,並分析 hbase table 的region 分布, 生成對應region的hfile, 放到 hfile_path中

hbase --config config_dir org.apache.hadoop.hbase.mapreduce.loadincrementalhfiles \

hdfs:///hfile_path \

hbase_namespace:table_name

將上一步的hfile匯入hbase table

bulkload的優點是快,生成的 hfile 直接註冊到 region server, 資料對應用立即可見, 沒有wal log, 沒有flush;如果配置了 hbase 備集群, 需要同時 bulkload 乙份過去 (hbase主備同步基於 wal log);

使用sqoop將mysql資料匯入hbase

下表 1 通過hbase shell 開啟hbase。2 建立乙個hbase表 3 將so表的資料匯入到hbase中。opt檔案 connect 資料庫 username 資料庫使用者名稱 password 資料庫密碼 table 需要sqoop的表 columns 表中的列 hbase table...

HIVE資料匯入

1.text資料檔案匯出text資料表中 資料格式 建立相應的資料表 create table if not exists text table id int,count int comment table desc partitioned by date int row format delimi...

Hive資料匯入

1.操作準備資料來源 drop table if exists b create table b as select id,name,tel,age from b 2.複製檔案 如果資料檔案恰好是使用者需要的格式,那麼只需要複製檔案或資料夾就可以 hadoop fs cp source path t...