溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

sqoop的介紹以及部署安裝

發(fā)布時間:2020-07-02 21:16:26 來源:網(wǎng)絡 閱讀:743 作者:原生zzy 欄目:大數(shù)據(jù)

1.sqoop的介紹

(1)介紹:

  Sqoop是Apache旗下的一款“hadoop和關系型數(shù)據(jù)庫服務器之間傳送數(shù)據(jù)”的工具。
  導入數(shù)據(jù)MySQL、Oracle導入數(shù)據(jù)到hadoop的hdfs、hive、HBASE等數(shù)據(jù)存儲系統(tǒng)。
   導出數(shù)據(jù):從hadoop的文件系統(tǒng)中導出數(shù)據(jù)到關系型數(shù)據(jù)庫中。

(2)工作機制

sqoop的介紹以及部署安裝
  將導入導出的命令翻譯成MapReduce程序來實現(xiàn),并且MapReduce程序不需要reducetask的。在翻譯出的MapReduce中主要針對對 InputFormat 和 OutputFormat 進行定制。

(3)sqoop的導入導出原理

數(shù)據(jù)導入:
  sqoop工具是通過MapReduce進行導入作業(yè)的。總體來說,是把關系型數(shù)據(jù)庫中的某張表的一行行記錄寫入hdfs中。
sqoop的介紹以及部署安裝
解釋
 - sqoop會通過jdbc來獲取需要的數(shù)據(jù)庫的元數(shù)據(jù)信息,例如:導入的表的列名,數(shù)據(jù)類型。
 - 這些數(shù)據(jù)庫的數(shù)據(jù)類型會被映射成為java的數(shù)據(jù)類型,根據(jù)這些信息,sqoop會生成一個與表名相同的類用來完成序列化工作,保存表中的每一行記錄。
 - sqoop開啟MapReduce作業(yè)
 - 啟動的作業(yè)在input的過程中,會通過jdbc讀取數(shù)據(jù)表中的內(nèi)容,這時,會使用sqoop生成的類進行序列化。
 - 最后將這些記錄寫到hdfs上,在寫入hdfs的過程中,同樣會使用sqoop生成的類進行反序列化。
數(shù)據(jù)導出
sqoop的介紹以及部署安裝
解釋
 - 首先sqoop通過jdbc訪問關系型數(shù)據(jù)庫,得到需要導出的數(shù)據(jù)的元數(shù)據(jù)信息
 - 根據(jù)獲取的元數(shù)據(jù)信息,sqoop生成一個java類,用來進行數(shù)據(jù)的傳輸載體,該類必須實現(xiàn)序列化。
 - 啟動MapReduce程序
 - sqoop利用生成的這個java類,并行的從hdfs中讀取數(shù)據(jù)
 - 每一個map作業(yè)都會根據(jù)讀取到的導出表的元數(shù)據(jù)信息和讀取到的數(shù)據(jù),生成一批的insert語句然后多個 map 作業(yè)會并行的向數(shù)據(jù)庫 mysql 中插入數(shù)據(jù)。

總結(jié):數(shù)據(jù)是從hdfs中并發(fā)進行讀取,也是并發(fā)進行寫入,那并行的讀取時依賴hdfs的性能,而并行的寫入到MySQL,就要依賴MySQL的性能。

2.sqoop的安裝

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

  • 解壓: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配成一個就行了,但是我們現(xiàn)在安裝的hadoop的開源的版本:所以這兩個在一個目錄下就行,但是在hadoop的商業(yè)版本中這兩個配置是分別安裝在不同的目錄下的。

  • 將MySQL的驅(qū)動包導入sqoop1.4.6/lib 目錄下(mysql-connector-java-5.1.40-bin.jar)
  • 配置環(huán)境變量
    [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的介紹以及部署安裝
    出現(xiàn)以上表示安裝成功!?。?!
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI