1. 程式人生 > >資料遷移工具 sqoop 安裝部署及實戰

資料遷移工具 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