Sqoop數據遷移工具


一、概述

    sqoop apache 旗下一款“ Hadoop 和關系數據庫服務器之間傳送數據”的工具。

    導入數據: MySQLOracle 導入數據到 Hadoop HDFSHIVEHBASE 等數據存儲系統;
    導出數據:從 Hadoop 的文件系統中導出數據到關系數據庫 mysql
    Sqoop 的本質還是一個命令行工具,和 HDFSHive 相比,並沒有什么高深的理論。

 

二、工作機制

      將導入或導出命令翻譯成 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

   (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

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

四、sqoop基本命令介紹

     

五、sqoop數據導入     

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

1、導入mysql數據到HDFS

 (1)普通導入

如果我們沒有給該命令指定導出的文件的存儲路徑,那么默認會保存在 HDFS 上的
/user/root/help_keyword 目中
其中,第一個 user 是固定的,第二個 root,表示鏈接的用戶名,第三個表示表名

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

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

(3)導入where條件數據

我們可以導入表的使用 Sqoop 導入工具, "where"子句的一個子集。它執行在各自的數據庫 服務器相應的 SQL 查詢,並將結果存儲在 HDFS 的目標目錄。 

(4)導入 Query 結果數據

2、導入 MySQL HIVE

Sqoop 導入關系型數據到 hive 的過程是先導入到 hdfs,然后再 load 進入 hive

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM