100
微信
Sqoop__數據傳輸軟件_開發人員指南_E-MapReduce-阿裏雲
Sqoop 是一款用來在不同數據存儲軟件之間進行數據傳輸的開源軟件,它支持多種類型的數據儲存軟件。
安裝 Sqoop
注意:目前,E-MapReduce 從版本 1.3 開始都會默認支持 Sqoop 組件,您無需再自行安裝,可以跳過本節。
若您使用的 E-MapReduce 的版本低於 1.3,則還沒有集成 Sqoop,如果需要使用請參考如下的安裝方式。
從官網下載 Sqoop 1.4.6 版本(點擊下載)。若下載的
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
無法打開,也可以使用鏡像地址https://mirror.bit.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
進行下載,請執行如下命令:wget https://mirror.bit.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__ha doop-2.0.4-alpha.tar.gz
執行如下命令,將下載下來的
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
解壓到 Master 節點上:tar zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
要從 Mysql 導數據需要安裝 Mysql driver。請從官網下載最新版本(點擊下載),或執行如下命令進行下載(此處以版本 5.1.38 為例):
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz
解壓以後把 jar 包放到 Sqoop 目錄下的 lib 目錄下。
數據傳輸
常見的使用場景如下所示:
Mysql -> HDFS
HDFS -> Mysql
Mysql -> Hive
Hive -> Mysql
使用 SQL 作為導入條件
注意:在執行如下的命令前,請先切換你的用戶為 Hadoop。
su hadoop
從 Mysql 到 HDFS
在集群的 Master 節點上執行如下命令:
sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <hdfs-dir>
參數說明:
dburi:數據庫的訪問連接,例如: jdbc:mysql://192.168.1.124:3306/。
dbname:數據庫的名字,例如:user。
username:數據庫登錄用戶名。
password:用戶對應的密碼。
tablename:Mysql 表的名字。
hdfs-dir:HDFS 的寫入目錄,例如:/user/hive/result。
更加詳細的參數使用請參考 Sqoop Import。
從 HDFS 到 Mysql
需要先創建好對應 HDFS 中的數據結構的 Mysql 表,然後在集群的 Master 節點上執行如下命令,指定要導的數據文件的路徑。
sqoop export --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --export-dir <hdfs-dir>
參數說明:
dburi:數據庫的訪問連接,例如: jdbc:mysql://192.168.1.124:3306/。
dbname:數據庫的名字,例如:user。
username:數據庫登錄用戶名。
password:用戶對應的密碼。
tablename:Mysql 的表的名字。
hdfs-dir:要導到 Mysql 去的 HDFS 的數據目錄,例如:/user/hive/result.
更加詳細的參數使用請參考 Sqoop Export。
從 Mysql 到 Hive
導入的同時也新建一個 Hive 表,執行如下命令:
sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --fields-terminated-by "t" --lines-terminated-by "n" --hive-import --target-dir <hdfs-dir> --hive-table <hive-tablename>
參數說明:
dburi:數據庫的訪問連接,例如: jdbc:mysql://192.168.1.124:3306/。
dbname:數據庫的名字,例如:user。
username:據庫登錄用戶名。
password:用戶對應的密碼。
tablename:Mysql 的表的名字。
hdfs-dir:要導到 Mysql 去的 HDFS 的數據目錄,例如:/user/hive/result。
hive-tablename:對應的 Hive 中的表名,可以是 xxx.yyy。
更加詳細的參數使用請參考 Sqoop Import。
從 Hive 到 Mysql
請參考上麵的從 HDFS 到 Mysql的命令,隻需要指定 Hive 表對應的 HDFS 路徑就可以了。
從 Mysql 到 OSS
類似從 Mysql 到 HDFS,隻是 —target-dir 不同。在集群的 Master 節點上執行如下命令:
注意: OSS 地址中的 host 有內網地址、外網地址和 VPC 網絡地址之分。如果用經典網絡,需要指定內網地址,杭州是 oss-cn-hangzhou-internal.aliyuncs.com,VPC 要指定 VPC 內網,杭州是 vpc100-oss-cn-hangzhou.aliyuncs.com。
sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <oss-dir>
參數說明:
dburi:數據庫的訪問連接,例如: jdbc:mysql://192.168.1.124:3306/。
dbname:數據庫的名字,例如:user。
username:數據庫登錄用戶名。
password:用戶對應的密碼。
tablename:Mysql 表的名字。
oss-dir:OSS 的寫入目錄,例如:oss://<accessid>:<accesskey>@<bucketname>.oss-cn-hangzhou-internal.aliyuncs.com/result
。
更加詳細的參數使用請參考 Sqoop Import。
6. 從Oss到Mysql
類似mysql到hdfs,隻是—export-dir不同。需要創建好對應oss中的數據結構的Mysql表
然後在集群的Master節點上執行如下:指定要導的數據文件的路徑
sqoop export --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --export-dir <oss-dir>
dburi:數據庫的訪問連接,例如: jdbc:mysql://192.168.1.124:3306/
dbname:數據庫的名字,例如:user
username:數據庫登錄用戶名
password:用戶對應的密碼
tablename:Mysql的表的名字
oss-dir:oss的寫入目錄,例如:oss://<accessid>:<accesskey>@<bucketname>.oss-cn-hangzhou-internal.aliyuncs.com/result
注意: oss地址host有內網地址,外網地址,vpc網絡地址之分。如果 用經典網絡,需要指定內網地址,杭州是oss-cn-hangzhou-internal.aliyuncs.com,vpc要指定vpc內網,杭州是vpc100-oss-cn-hangzhou.aliyuncs.com
更加詳細的參數使用請參考,Sqoop Export
使用 SQL 作為導入條件
除了指定 Mysql 的全表導入,還可以寫 SQL 來指定導入的數據,如下所示:
sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --query <query-sql> --split-by <sp-column> --hive-import --hive-table <hive-tablename> --target-dir <hdfs-dir>
參數說明:
dburi:數據庫的訪問連接,例如: jdbc:mysql://192.168.1.124:3306/。
dbname:數據庫的名字,例如:user。
username:數據庫登錄用戶名。
password:用戶對應的密碼。
query-sql:使用的查詢語句,例如:”SELECT * FROM profile WHERE id>1 AND $CONDITIONS”。記得要用引號包圍,最後一定要帶上 AND $CONDITIONS。
sp-column:進行切分的條件,一般跟 Mysql 表的主鍵。
hdfs-dir:要導到 Mysql 去的 HDFS 的數據目錄,例如:/user/hive/result。
hive-tablename:對應的 Hive 中的表名,可以是 xxx.yyy。
更加詳細的參數使用請參考 Sqoop Query Import。
集群和其他數據庫的網絡配置請參考,用Aliyun E-MapReduce集群的 Sqoop 工具和數據庫同步數據如何配置網絡。
最後更新:2016-11-23 16:03:59
上一篇:
HBase 開發手冊__開發人員指南_E-MapReduce-阿裏雲
下一篇:
阿裏雲數據集成__數據傳輸軟件_開發人員指南_E-MapReduce-阿裏雲
專題&關鍵詞配置__輿情分析_快速開始_公眾趨勢分析-阿裏雲
CDN API概述__API 手冊_CDN-阿裏雲
通知__使用須知_用戶指南_彈性伸縮-阿裏雲
獲取產品類型信息__接口列表_服務器端API_阿裏雲物聯網套件-阿裏雲
UploadCACertificate__ServerCertificate相關API_API 參考_負載均衡-阿裏雲
ODPSReader__Reader插件_使用手冊_數據集成-阿裏雲
推通知給iOS設備__推送相關_API 列表_OpenAPI 2.0_移動推送-阿裏雲
權限相關常見問題__常見問題_大數據開發套件-阿裏雲
多實例並發__命令行工具_批量計算-阿裏雲
RouteTableSetType__數據類型_API 參考_雲服務器 ECS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲