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