sqoop的介紹以及部署安裝

1.sqoop的介紹

(1)介紹:

  Sqoop是Apache旗下的一款「hadoop和關係型數據庫服務器之間傳送數據」的工具。
  導入數據:MySQL、Oracle導入數據到hadoop的hdfs、hive、HBASE等數據存儲系統。
   導出數據:從hadoop的文件系統中導出數據到關係型數據庫中。java

(2)工做機制

sqoop的介紹以及部署安裝
  將導入導出的命令翻譯成MapReduce程序來實現,而且MapReduce程序不須要reducetask的。在翻譯出的MapReduce中主要針對對 InputFormat 和 OutputFormat 進行定製。mysql

(3)sqoop的導入導出原理

數據導入:
  sqoop工具是經過MapReduce進行導入做業的。整體來講,是把關係型數據庫中的某張表的一行行記錄寫入hdfs中。
sqoop的介紹以及部署安裝
解釋
 - sqoop會經過jdbc來獲取須要的數據庫的元數據信息,例如:導入的表的列名,數據類型。
 - 這些數據庫的數據類型會被映射成爲java的數據類型,根據這些信息,sqoop會生成一個與表名相同的類用來完成序列化工做,保存表中的每一行記錄。
 - sqoop開啓MapReduce做業
 - 啓動的做業在input的過程當中,會經過jdbc讀取數據表中的內容,這時,會使用sqoop生成的類進行序列化。
 - 最後將這些記錄寫到hdfs上,在寫入hdfs的過程當中,一樣會使用sqoop生成的類進行反序列化。
數據導出
sqoop的介紹以及部署安裝
解釋
 - 首先sqoop經過jdbc訪問關係型數據庫,獲得須要導出的數據的元數據信息
 - 根據獲取的元數據信息,sqoop生成一個java類,用來進行數據的傳輸載體,該類必須實現序列化。
 - 啓動MapReduce程序
 - sqoop利用生成的這個java類,並行的從hdfs中讀取數據
 - 每個map做業都會根據讀取到的導出表的元數據信息和讀取到的數據,生成一批的insert語句而後多個 map 做業會並行的向數據庫 mysql 中插入數據。sql

總結:數據是從hdfs中併發進行讀取,也是併發進行寫入,那並行的讀取時依賴hdfs的性能,而並行的寫入到MySQL,就要依賴MySQL的性能。數據庫

2.sqoop的安裝

前置要求:已經具有了Java和hadoop的環境。
安裝包下載地址:http://ftp.wayne.edu/apache/sqoop/1.4.6/
這裏安裝的是qoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz(sqoop1.x版本)
具體安裝apache

  • 解壓:tar -zxvf sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz -C /applications
  • 修改配置文件:
    #sqoop-env.sh
    [hadoop hadoop01@ ~]$cd /application/sqoop-1.4.6/conf/
    [hadoop hadoop01@ ~]$mv sqoop-env-template.sh sqoop-env.sh
    [hadoop hadoop01@ ~]$vim sqoop-env.sh

    sqoop的介紹以及部署安裝

    export HADOOP_COMMON_HOME=/application/hadoop-2.7.6
    export HADOOP_MAPRED_HOME=/application/hadoop-2.7.6
    export HIVE_HOME=/application/apache-hive-2.3.2-bin
    export ZOOCFGDIR=/application/zookeeper-3.4.10/conf

    注意:這裏的HADOOP_COMMON_HOME和HADOOP_MAPRED_HOME配成一個就好了,可是咱們如今安裝的hadoop的開源的版本:因此這兩個在一個目錄下就行,可是在hadoop的商業版本中這兩個配置是分別安裝在不一樣的目錄下的。vim

  • 將MySQL的驅動包導入sqoop1.4.6/lib 目錄下(mysql-connector-java-5.1.40-bin.jar)
  • 配置環境變量
    [hadoop hadoop01@ ~]$vim /etc/profile
    export SQOOP_HOME=/application/sqoop-1.4.6
    export PATH=$PATH:$ZOOKEEPER_HOME/bin:$SQOOP_HOME/bin
    [hadoop hadoop01@ ~]$source /etc/profile
  • 驗證安裝是否成功(sqoop version)
    sqoop的介紹以及部署安裝出現以上表示安裝成功!!!!
相關文章
相關標籤/搜索