大數據學習之十五——sqoop的安裝和使用
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的安裝和使用