Sqoop抽取Mysql源數據至Hive ---(第一篇)

 Hadoop、Hive、MySQL 安裝   

                                             (hive、mysql安裝詳情在上一篇)

 

1.1.  下載Sqoop鏈接:

http://www.apache.org/dyn/closer.lua/sqoop/1.4.

安裝包放置百度雲盤:

鏈接:https://pan.baidu.com/s/1jrRU8j9tCAVkCj85sBYt5w 
提取碼:offg 

Soop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關係型數據庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中。

Sqoop項目開始於2009年,最早是作爲Hadoop的一個第三方模塊存在,後來爲了讓使用者能夠快速部署,也爲了讓開發人員能夠更快速的迭代開發,Sqoop獨立成爲一個Apache項目。

 

 1.2.  解壓

tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

1.3.  建立軟連接

ln -s sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop

 

1.4.  加執行文件路徑(環境變量)

export PATH=$PATH:/home/grid/sqoop/bin

 

1.5.  把MySQL java連接器的jar文件拷貝到sqoop的lib目錄下

cp mysql-connector-java-5.1.38-bin.jar /home/grid/sqoop/lib/

 

1.6.  測試
(1)列出mysql數據庫中的所有數據庫

sqoop list-databases --connect jdbc:mysql://192.168.56.104:3306?useSSL=false --username root --password 123456


(2)連接mysql並列出數據庫中的表
 

sqoop list-tables --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false --username root --password 123456


(3)將MySQL的test.t1表結構複製到Hive的test庫中,表名爲mysql_t1

sqoop create-hive-table --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false --table t1 --username root --password 123456 --hive-table test.mysql_t1


注:該命令可以多次執行不報錯
(4)將mysql表的數據導入到hive中
# 追加數據

sqoop import --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false --username root --password 123456 --table t1 --hive-import --hive-table test.mysql_t1


# 覆蓋數據

sqoop import --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false --username root --password 123456 --table t1 --hive-import --hive-overwrite --hive-table test.mysql_t1


注:如果MySQL中的表沒有主鍵,則需要加--autoreset-to-one-mapper參數
(5)將hive表的數據導入到mysql中

sqoop export --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false --username root --password 123456 --table t2 --export-dir /user/hive/warehouse/test.db/mysql_t1


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章