1. 程式人生 > >大數據-08-Sqoop入門

大數據-08-Sqoop入門

測試 路徑 apache ref 人員 得到 教程 zxvf alt

簡介

Sqoop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的數據庫(mysql、postgresql…)間進行數據的傳遞,可以將一個關系型數據庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關系型數據庫中。Sqoop項目開始於2009年,最早是作為Hadoop的一個第三方模塊存在,後來為了讓使用者能夠快速部署,也為了讓開發人員能夠更快速的叠代開發,Sqoop獨立成為一個Apache項目。

安裝環境:
操作系統:ubuntu-16.04.3-desktop-amd64.iso
sqoop版本:sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

Hadoop: hadoop-2.7.5.tar.gz
MySQL:5.7.15
註意:sqoop1與sqoop2完全不兼容,1.4.6及之前的版本是sqoop1,之後的是sqoop2

  1. 下載並解壓sqoop1.4.7
    請登錄Linux系統(本教程是使用hadoop用戶名登錄),然後,在Linux的瀏覽器(一般自帶的是火狐Firefox瀏覽器)中,打開本網頁,點擊sqoop下載地址,瀏覽器默認會被下載文件保存到當前登錄用戶的下載目錄下面。
    下面執行以下命令

    sudo tar -zxvf  sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local #解壓安裝文件
    cd /usr/local
    sudo mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop #修改文件名
    sudo chown -R hadoop:hadoop sqoop #修改文件夾屬主,如果你當前登錄用戶名不是hadoop,請修改成你自己的用戶名
  2. 修改配置文件sqoop-env.sh

    cd sqoop/conf/
    cp sqoop-env-template.sh qoop-env.sh  #將sqoop-env-template.sh復制一份並命名為sqoop-env.sh
    vim sqoop-env.sh #編輯sqoop-env.sh

    修改sqoop-env.sh的如下信息

    export HADOOP_COMMON_HOME=/usr/local/hadoop
    export HADOOP_MAPRED_HOME=/usr/local/hadoop
    export HBASE_HOME=/usr/local/hbase
    export HIVE_HOME=/usr/local/hive
    #export ZOOCFGDIR= #如果讀者配置了ZooKeeper,也需要在此配置ZooKeeper的路徑
  3. 配置環境變量
    打開當前用戶的環境變量配置文件:

    vim ~/.bashrc

    在配置文件第一行鍵入如下信息:

    export SQOOP_HOME=/usr/local/sqoop
    export PATH=$PATH:$SBT_HOME/bin:$SQOOP_HOME/bin
    export CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib

    然後,執行下面命令讓配置文件立即生效:

    source ~/.bashrc
  4. 將mysql驅動包拷貝到$SQOOP_HOME/lib
    下面要把MySQL驅動程序拷貝到$SQOOP_HOME/lib目錄下,首先請在Linux系統的瀏覽器中請點擊mysql驅動包下載地址下載驅動包。下載mysql-connector-java-5.1.46.tar.gz後,下面執行命令拷貝文件:

    sudo tar -zxvf  mysql-connector-java-5.1.46.tar.gz  #解壓mysql驅動包
    ls #這時就可以看到解壓縮後得到的目錄
    cp ./mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/local/sqoop/lib
  5. 測試與MySQL的連接

首先請確保mysql服務已經啟動了,如果沒有啟動,請執行下面命令啟動:

service mysql start

然後就可以測試sqoop與MySQL之間的連接是否成功:

sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P

mysql的數據庫列表顯示在屏幕上表示連接成功,如下圖:
技術分享圖片

大數據-08-Sqoop入門