創(chuàng)新互聯(lián)是專業(yè)的府谷網(wǎng)站建設(shè)公司,府谷接單;提供成都網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行府谷網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
下文主要給大家?guī)砝胹qoop將數(shù)據(jù)從MySQL同步到hbase的簡單方法,希望利用sqoop將數(shù)據(jù)從mysql同步到hbase的簡單方法這些內(nèi)容能夠帶給大家實際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。
- sqoop
- 數(shù)據(jù)同步 - hbase
使用sqoop將數(shù)據(jù)從mysql同步到hbase
知識點(diǎn)-HBase初體驗
知識點(diǎn)-愉快地通過Thrift訪問HBase
知識點(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ù)遷移的一個工具。
可以使用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提供了容錯機(jī)制和并行運(yùn)算。
Sqoop是Apache基金會開源的軟件產(chǎn)品,官網(wǎng)http://sqoop.apache.org
Github地址 https://github.com/apache/sqoop
使用實例
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ù)都會轉(zhuǎn)換為HBase的Put操作作為輸出到HBase表的行。
默認(rèn)情況下,Sqoop會使用--split-by的列[上面的create_date]作為rowkey。
也可以通過--hbase-row-key指定作為rowkey的列。
每一個輸出行都會放在同一個列族中,必須通過--column-family指定列族。
不能使用--direct【會沖突】。
--hbase-row-key也可以指定復(fù)合行健,中間使用逗號隔開。
默認(rèn)如果HBase表和列族不存在,Sqoop會直接報錯退出,所以需要在Sqoop執(zhí)行之前創(chuàng)建好HBase表和列族。
如果指定--hbase-create-table和列族,HBase表不存在則會自動創(chuàng)建。
Sqoop會序列化所有的值,以字符串形式轉(zhuǎn)化為utf-8的字節(jié)數(shù)組存到HBase中。
Sqoop會跳過除了行健之外所有為MULL的列。
指定--hbase-bulkload可以采用大批量加載來替代直接寫入HBase對于以上關(guān)于利用sqoop將數(shù)據(jù)從mysql同步到hbase的簡單方法,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。