1. 程式人生 > >Sqoop 資料遷移案例

Sqoop 資料遷移案例

Sqoop 資料遷移工具

  • 定義 主要用於在 Hadoop(Hive)和傳統資料庫(mysql 等)之間進行資料的傳遞

層實現由 MR 完成(嚴格來說,只執行 map,沒有 reduce)
部署 只需要部署在一臺伺服器上,作為程式提交給 YARN
配置 已在 Hadoop 叢集中配置,免配置(可以在 sqoop-site.xml 個性化配置)
第三方庫 需要在 sqoop 的 lib 目錄下新增 mysql-connector-java 的 jar 包

  • 匯入 HDFS 

sqoop import --connect jdbc:mysql:10.2.44.251:3306/ 數 據 庫 名
--username 使用者名稱 --password 密碼 --table 資料表名 --target-dir 
/HDFS 文 件 系 統 中 存 放 的 文 件 目 錄 / 文 件 名 -m map 的個數
--fields-terminater-by ‘欄位間的分隔符’ --columns “列 1,列 2”
--where ‘選擇條件’(預設存放在 HDFS 檔案系統中)
sqoop import --connect jdbc:mysql:10.2.44.251:3306/ 數 據 庫 名
--username 使用者名稱 --password 密碼 --query ’SQL 查詢語句 and 
$CONDITIONS’ -m map 的個數 --target-dir /HDFS 檔案系統中存放的文
件目錄 / 檔名 --split-by 劃 分 到 不 同 map 的規則, 如欄位
id($CONDITIONS’ 檢查記錄的條數,告知 map)

  • 匯出 HDFS 

sqoop export --connect jdbc:mysql:10.2.44.251:3306/ 數 據 庫 名
--username 使用者名稱 --password 密碼 --export-dir ‘匯出目錄,目錄下
的所有檔案都會被匯出 ’ --table 數 據 表 名 -m map 的 個 數
--fields-terminater-by ‘欄位間的分隔符’