3 回答

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
將Mysql遷移到Hbase主要有三種方法:
1、Put API
Put API可能是將數(shù)據(jù)快速導(dǎo)入HBase表的最直接的方法。但是在導(dǎo)入【大量數(shù)據(jù)】時(shí)不建議使用!但是可以作為簡單數(shù)據(jù)遷移的選擇,直接寫個(gè)代碼批量處理,開發(fā)簡單、方便、可控強(qiáng)。
2、MapReduce Job
推薦使用sqoop,它的底層實(shí)現(xiàn)是mapreduce,數(shù)據(jù)并行導(dǎo)入的,這樣無須自己開發(fā)代碼,過濾條件通過query參數(shù)可以實(shí)現(xiàn)。
Sqoop是一款開源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql...)間進(jìn)行數(shù)據(jù)的傳遞,可以將MySQL中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到Mysql中。
參考Index of /docs。
采用如下命令:sqoop import
--connect jdbc:mysql://localhost/db
--username root -P
--table mysql_order
--columns "id,name"
--hbase-table hbase_order
--column-family f
--hbase-row-key id
--query "select id,name from mysql_order where..."
-m 1
3、采用Bulk load裝載數(shù)據(jù)
bulk-load的作用是用mapreduce的方式將hdfs上的文件裝載到hbase中,對于海量數(shù)據(jù)裝載入hbase非常有用。
需要將MySQL的表數(shù)據(jù)導(dǎo)出為TSV格式(因?yàn)楹竺媸褂肐mport TSV工具),還需要確保有一個(gè)字段可以表示HBase表行的row key。
- 3 回答
- 0 關(guān)注
- 1468 瀏覽
添加回答
舉報(bào)