Hadoop冷热数据转换工具Sqoop
Sqoop是Apache基金下的開源項目,目的是完成關(guān)系數(shù)據(jù)庫和Hadoop的轉(zhuǎn)化,實現(xiàn)雙向?qū)搿?/p>
通常的大型數(shù)據(jù)系統(tǒng)使用之實現(xiàn)較少,主要原因是因為其在CDH3才開始支持,而且該方式是通過JDBC驅(qū)動,將數(shù)據(jù)庫進行讀取,并將數(shù)據(jù)轉(zhuǎn)換至HDFS文件,通常會影響熱數(shù)據(jù)的使用。但是做為日常工作,需要轉(zhuǎn)換時,還是會提供一些方便。
CDH3版本的Sqoop已經(jīng)默認安裝了,其構(gòu)建在MapReduce之上,不同于直接拷貝,其通過JDBC驅(qū)動連接實現(xiàn)hadoop和關(guān)系數(shù)據(jù)庫之間的通信。
在進行sqoop前,需要把對應(yīng)的JDBC驅(qū)動放到對應(yīng)的lib目錄。
sqoop命令參數(shù):
import ##表示導(dǎo)入數(shù)據(jù)
--connect jdbc:mysql://ip:3306/sqoop ##指定連接mysql的url
--username test ##連接mysql的用戶名
--password test1 ##連接mysql的密碼
--table weblogs ##從mysql導(dǎo)出的表名稱
--fields-terminated-by '\t' ##指定輸出文件中的行的字段分隔符
--m1 ##復(fù)制過程使用1個map作業(yè)
--target-dir /data/weblogs/import ##指定HDFS上存放的路徑
其中,username和password用于驗證訪問mysql的權(quán)限,必須在hadoop的用戶名中出現(xiàn)。
默認情況下,導(dǎo)入的數(shù)據(jù)按照主鍵進行分割,如果導(dǎo)入的表不包含主鍵,就用--split-by參數(shù)決定導(dǎo)入的數(shù)據(jù)如何分割。
Sqoop命令將轉(zhuǎn)化為mapreduce作業(yè),使用DBInputFormat,格式化查詢結(jié)果。因為其進行全表掃描,使用時需要謹慎。
總結(jié)
以上是生活随笔為你收集整理的Hadoop冷热数据转换工具Sqoop的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 先抗住,再优化
- 下一篇: 【MongoDB】Sharding分片概