資料遷移工具 sqoop 安裝部署及實戰
目錄
- 概述
- 工作機制
- 安裝部署
- 實戰
1.概述
sqoop是apache旗下一款“Hadoop和關係資料庫伺服器之間傳送資料”的工具。
- 匯入資料:MySQL,Oracle匯入資料到Hadoop的HDFS、HIVE、HBASE等資料儲存系統;
- 匯出資料:從Hadoop的檔案系統中匯出資料到關係資料庫。
2.工作機制
將匯入或匯出命令翻譯成mapreduce程式來實現,在翻譯出的mapreduce中主要是對inputformat和outputformat進行定製。其實就是將匯入匯出命令轉化為mapreduce程式來執行,sqoop在接收到命令後,都要生成mapreduce程式,使用sqoop的程式碼生成工具可以方便檢視到sqoop所生成的java程式碼,並可在此基礎之上進行深入定製開發。
3.安裝部署
- 軟體準備
安裝sqoop的前提是已經具備java和hadoop的環境;
最新版下載地址http://ftp.wayne.edu/apache/sqoop/1.4.6/
- 修改配置檔案
$ cd $SQOOP_HOME/conf
$ mv sqoop-env-template.sh sqoop-env.sh
開啟sqoop-env.sh並編輯下面幾行:
export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.6.1/
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.6.1/
export HIVE_HOME=/home/hadoop/apps/hive-1.2.1
- 載入驅動
$ cp ~/app/hive/lib/mysql-connector-java-5.1.28.jar $SQOOP_HOME/lib/
- 啟動
$ cd $SQOOP_HOME/bin
$ sqoop-version
4 .實戰
- import :
(1)從mysql資料庫 urldb中的url_rule表,匯入 HDFS:
$bin/sqoop import \
--connect jdbc:mysql://shizhan01:3306/urldb \
--username root \
--password root \
--table url_rule\
--m 1
(2)從mysql資料庫 urldb中的url_rule表,匯入 Hive:
$bin/sqoop import \
--connect jdbc:mysql://shizhan01:3306/urldb \
--username root \
--password root \
--table url_rule \
--hive-import \
--m 1
- export :從HDFS匯入資料庫, 注意提前在資料庫中建立表結構。
bin/sqoop export \
--connect jdbc:mysql://shizhan01:3306/db \
--username root \
--password root \
--table employee \
--export-dir /queryresult