溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

利用sqoop將數(shù)據(jù)從mysql同步到hbase的簡(jiǎn)單方法

發(fā)布時(shí)間:2020-05-12 16:41:43 來源:億速云 閱讀:631 作者:三月 欄目:大數(shù)據(jù)

下文主要給大家?guī)砝胹qoop將數(shù)據(jù)從mysql同步到hbase的簡(jiǎn)單方法,希望利用sqoop將數(shù)據(jù)從mysql同步到hbase的簡(jiǎn)單方法這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

- sqoop

- 數(shù)據(jù)同步 - hbase

使用sqoop將數(shù)據(jù)從mysql同步到hbase
知識(shí)點(diǎn)-HBase初體驗(yàn)
知識(shí)點(diǎn)-愉快地通過Thrift訪問HBase
知識(shí)點(diǎn)-HBaseClient(Java)

目前機(jī)器使用的sqoop版本

# sqoop version
Warning: /usr/hdp/2.5.3.0-37/accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
17/12/13 22:34:23 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6.2.5.3.0-37
Sqoop 1.4.6.2.5.3.0-37
git commit id 16c017e90fdde118be73d46eff10cf2c068387e9
Compiled by jenkins on Wed Nov 30 02:29:18 UTC 2016

sqoop1.4.6文檔 https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html
Sqoop是用來在Hadoop和關(guān)系數(shù)據(jù)庫或者大型機(jī)之間做數(shù)據(jù)遷移的一個(gè)工具。
可以使用Sqoop從關(guān)系型數(shù)據(jù)庫管理系統(tǒng)如MySQL、Oracle中將數(shù)據(jù)導(dǎo)入到Hadoop分布式文件系統(tǒng)(HDFS)中,也可以從HDFS導(dǎo)出數(shù)據(jù)到RDBMS中。
RDBMS需要提供數(shù)據(jù)所在的schema(數(shù)據(jù)庫連接和用戶名密碼等信息),Sqoop使用MapReduce導(dǎo)入和導(dǎo)出數(shù)據(jù),MR提供了容錯(cuò)機(jī)制和并行運(yùn)算。
Sqoop是Apache基金會(huì)開源的軟件產(chǎn)品,官網(wǎng)http://sqoop.apache.org
Github地址 https://github.com/apache/sqoop

使用實(shí)例

sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
--driver com.mysql.jdbc.Driver \
--connect jdbc:mysql://host:3306/databasename \
--username root \
--password root \
--query "select a.id, a.create_date from table_a a WHERE 1=1 AND \$CONDITIONS" \
--hbase-table test_sqoop \
--column-family 'fts' \
--hbase-row-key id --split-by create_date -m 3

7.2.13. Importing Data Into HBase
--hbase-table 指定HBase表。
每一行輸入的數(shù)據(jù)都會(huì)轉(zhuǎn)換為HBase的Put操作作為輸出到HBase表的行。
默認(rèn)情況下,Sqoop會(huì)使用--split-by的列[上面的create_date]作為rowkey。
也可以通過--hbase-row-key指定作為rowkey的列。
每一個(gè)輸出行都會(huì)放在同一個(gè)列族中,必須通過--column-family指定列族。
不能使用--direct【會(huì)沖突】。
--hbase-row-key也可以指定復(fù)合行健,中間使用逗號(hào)隔開。
默認(rèn)如果HBase表和列族不存在,Sqoop會(huì)直接報(bào)錯(cuò)退出,所以需要在Sqoop執(zhí)行之前創(chuàng)建好HBase表和列族。
如果指定--hbase-create-table和列族,HBase表不存在則會(huì)自動(dòng)創(chuàng)建。
Sqoop會(huì)序列化所有的值,以字符串形式轉(zhuǎn)化為utf-8的字節(jié)數(shù)組存到HBase中。
Sqoop會(huì)跳過除了行健之外所有為MULL的列。
指定--hbase-bulkload可以采用大批量加載來替代直接寫入HBase

對(duì)于以上關(guān)于利用sqoop將數(shù)據(jù)從mysql同步到hbase的簡(jiǎn)單方法,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI