1.概念瞭解mysql
sqoop主要用於hadoop與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,能夠將一個關係型數據庫(例如:MYSQL,Oracle,Postgrep等)中的數據導到hadoop的HDFS中,也能夠將HDFS的數據導進到關係型數據庫中。linux
2.sqoop的安裝sql
(1)將壓縮包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.jar放在Linux的路徑下,並修改配置文件/etc/profile數據庫
export SQOOP_HOME=該壓縮包所在路徑oop
export PATH=$PATH:$SQOOP_HOME/binpost
(2)更新環境變量的值postgresql
source /etc/profileblog
檢驗是否安裝成功:輸入sqoop ,顯示提示說明安裝成功。hadoop
(3)下載mysql的鏈接jar包,放在sqoop的家目錄的lib目錄下。get
安裝後驗證:
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中的數據的。