1. 程式人生 > >sqoop資料遷移(01)——sqoop概述

sqoop資料遷移(01)——sqoop概述

概述

sqoop是什麼?

sqoop是apache旗下一款“Hadoop和關係資料庫伺服器之間傳送資料”的工具。 匯入資料:MySQL,Oracle匯入資料到Hadoop的HDFS、HIVE、HBASE等資料儲存系統; 匯出資料:從Hadoop的檔案系統中匯出資料到關係資料庫mysql等 在這裡插入圖片描述 Sqoop 是連線傳統關係型資料庫和 Hadoop 的橋樑。它包括以下兩個方面: 1、 將關係型資料庫的資料匯入到 Hadoop 及其相關的系統中,如 Hive和HBase。 2、 將資料從 Hadoop 系統裡抽取並匯出到關係型資料庫。 核心設計思想是利用 MapReduce 加快資料傳輸速度。也就是說 Sqoop 的匯入和匯出功能是通過 MapReduce 作業實現的。所以它是一種批處理方式進行資料傳輸,難以實現實時的資料進行匯入和匯出。

為什麼使用 Sqoop?

可以高效、可控地利用資源,可以通過調整任務數來控制任務的併發度。另外還可以配置資料庫的訪問時間等。 可以自動的完成資料型別對映與轉換。我們往往匯入的資料是有型別的,它可以自動根據資料庫中的型別轉換到 Hadoop 中,當然使用者也可以自定義它們之間的對映關係。 支援多種資料庫,比如,Mysql、Oracle和PostgreSQL等等資料庫。

sqoop1與sqoop2架構對比

sqoop1和sqoop2是兩個不同的版本,它們是完全不相容的。 Apache 1.4.x 之後的版本屬於sqoop1,1.99.x之上的版本屬於sqoop2。

sqoop1架構

在這裡插入圖片描述

sqoop2架構 在這裡插入圖片描述

sqoop2有以下優勢:  引入的sqoop Server,便於集中化的管理Connector或者其它的第三方外掛;  具有多種訪問方式:CLI、Web UI、REST API;  引入了基於角色的安全機制,管理員可以在sqoop Server上配置不同的角色。

工作機制

將匯入或匯出命令翻譯成mapreduce程式來實現 在翻譯出的mapreduce中主要是對inputformat和outputformat進行定製。