1. 程式人生 > >大數據學習之十五——sqoop的安裝和使用

大數據學習之十五——sqoop的安裝和使用

dfs 9.1 pos 屬性 操作 所有 alt 成功 nbsp

1.概念了解

sqoop主要用於hadoop與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關系型數據庫(例如:MYSQL,Oracle,Postgrep等)中的數據導到hadoop的HDFS中,也可以將HDFS的數據導進到關系型數據庫中。

2.sqoop的安裝

(1)將壓縮包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.jar放在Linux的路徑下,並修改配置文件/etc/profile

export SQOOP_HOME=該壓縮包所在路徑

export PATH=$PATH:$SQOOP_HOME/bin

(2)更新環境變量的值

source /etc/profile

檢驗是否安裝成功:輸入sqoop ,顯示提示說明安裝成功。

(3)下載mysql的連接jar包,放在sqoop的家目錄的lib目錄下。

安裝後驗證:

sqoop list-databases --connect jdbc:mysql://本地IP:3306/ --username root --password root123

技術分享圖片

若顯示數據庫,說明安裝完成。

3.sqoop的使用

sqoop支持很多對數據庫的操作,比如查看數據庫,查看數據表,對數據的導入導出,導入所有的表。當然用的最多的還是export和import兩個指令對數據庫和hadoop數據進行導出導入。

(1)利用sqoop數據從mysql中導入到hdfs
現在數據庫中建立一個employee的表,字段有id,name,age,place,entry_time,position
,然後再填充一些數據。

技術分享圖片

運行命令格式:sqoop import --connect jdbc:mysql://本地IP:3306/數據庫name --username root --password 123456 --table 表名--target-dir hdfs中的路徑 -m 1

sqoop import --connect jdbc:mysql://master:3306/liu --username root --password 123456 --table employees --target-dir /input/sqoop/sqoop_employees -m 1

技術分享圖片

需要註意的是:要導入到hdfs中的目錄不能提前存在。

(2)將數據從hdfs導出到mysql中

將hdfs中的數據/input/f.txt導入到數據庫中:

技術分享圖片

執行命令格式:

#sqoop export --connect jdbc:mysql://本地IP地址:3306/數據庫名字 --username root --table 表格的名字 --export-dir ‘hdfs中的路徑‘ --fields-terminated-by ‘,‘

#sqoop export --connect jdbc:mysql://192.168.59.128:3306/db01 --username root --password linux --table table03 --export-dir ‘/input/f.txt‘ --fields-terminated-by ‘,‘

其中數據庫db01,table03都是提前存在的,並且table03的屬性是對應hdfs中的數據的。

技術分享圖片

大數據學習之十五——sqoop的安裝和使用