天天看點

Sqoop資料遷移工具



一、概述

    sqoop 是 apache 旗下一款“ Hadoop 和關系資料庫伺服器之間傳送資料”的工具。 

    導入資料: MySQL, Oracle 導入資料到 Hadoop 的 HDFS、 HIVE、 HBASE 等資料存儲系統;

    導出資料:從 Hadoop 的檔案系統中導出資料到關系資料庫 mysql 等

    Sqoop 的本質還是一個指令行工具,和 HDFS, Hive 相比,并沒有什麼高深的理論。

Sqoop資料遷移工具

二、工作機制

      将導入或導出指令翻譯成 mapreduce 程式來實作

      在翻譯出的 mapreduce 中主要是對 inputformat 和 outputformat 進行定制

三、sqoop安裝

     安裝 sqoop 的前提是已經具備 java 和 hadoop 的環境

     安裝包下載下傳位址 http://ftp.wayne.edu/apache/sqoop/1.4.6/

     安裝步驟 :

      (1)準備安裝包 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

      (2) 解壓安裝包到安裝目錄

              tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C apps/

              cd apps

              mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop1.4.6

      (3) 進入到 conf 檔案夾,找到 sqoop-env-template.sh,修改其名稱為 sqoop-env.sh

              cd conf

              mv sqoop-env-template.sh sqoop-env.sh

     (4) 修改 sqoop-env.sh

Sqoop資料遷移工具

   (5) 加入 mysql 驅動包到 sqoop1.4.6/lib 目錄下

          cp mysql-connector-java-5.1.39.jar apps/sqoop1.4.6/lib/

   (6) 配置系統環境變量

         vi /etc/profile

         然後輸入:

        export SQOOP_HOME=/root/apps/sqoop1.4.6

         export PATH=$PATH:$SQOOP_HOME/bin

        然後儲存退出

        source /etc/profile

   (7) 驗證安裝是否成功

          sqoop –version

Sqoop資料遷移工具

   (8)出現如圖所示畫面,證明安裝成功,那麼接下來就可以正常使用了。

四、sqoop基本指令介紹

Sqoop資料遷移工具
Sqoop資料遷移工具

五、sqoop資料導入     

     “導入工具”導入單個表從 RDBMS 到 HDFS。表中的每一行被視為 HDFS 的記錄。所有記錄 都存儲為文本檔案的文本資料(或者 Avro、 sequence 檔案等二進制資料)

Sqoop資料遷移工具

1、導入mysql資料到HDFS

 (1)普通導入

Sqoop資料遷移工具

如果我們沒有給該指令指定導出的檔案的存儲路徑,那麼預設會儲存在 HDFS 上的

/user/root/help_keyword 目中

其中,第一個 user 是固定的,第二個 root,表示連結的使用者名,第三個表示表名 

Sqoop資料遷移工具
Sqoop資料遷移工具

從以上結果可以得出一個結論: 如果沒有指定路徑,則會按預設規則生成路徑,如果沒有 指定分隔符,預設按照逗号分隔 

(2)指定分隔符和導入路徑 

Sqoop資料遷移工具
Sqoop資料遷移工具

(3)導入where條件資料

我們可以導入表的使用 Sqoop 導入工具, "where"子句的一個子集。它執行在各自的資料庫 伺服器相應的 SQL 查詢,并将結果存儲在 HDFS 的目标目錄。 

Sqoop資料遷移工具
Sqoop資料遷移工具

(4)導入 Query 結果資料 

Sqoop資料遷移工具
Sqoop資料遷移工具

2、導入 MySQL 到 HIVE 

Sqoop 導入關系型資料到 hive 的過程是先導入到 hdfs,然後再 load 進入 hive