簡(jiǎn)介
Sqoop是一個(gè)用來將Hadoop和關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)相互轉(zhuǎn)移的工具,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)入到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫(kù)中。
http://sqoop.apache.org/
環(huán)境
當(dāng)調(diào)試過程出現(xiàn)IncompatibleClassChangeError一般都是版本兼容問題。
為了保證hadoop和sqoop版本的兼容性,使用Cloudera,
Cloudera簡(jiǎn)介:
Cloudera為了讓Hadoop的配置標(biāo)準(zhǔn)化,可以幫助企業(yè)安裝,配置,運(yùn)行hadoop以達(dá)到大規(guī)模企業(yè)數(shù)據(jù)的處理和分析。
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDHTarballs/3.25.2013/CDH4-Downloadable-Tarballs/CDH4-Downloadable-Tarballs.html
下載安裝hadoop-0.20.2-cdh3u6,sqoop-1.3.0-cdh3u6。
安裝
安裝比較簡(jiǎn)單,直接解壓即可
唯一需要做的就是將mysql的jdbc適配包mysql-connector-java-5.0.7-bin.jar copy到$SQOOP_HOME/lib下。
配置好環(huán)境變量:/etc/profile
export SQOOP_HOME=/home/hadoop/sqoop-1.3.0-cdh3u6/
export PATH=$SQOOP_HOME/bin:$PATH
MYSQL轉(zhuǎn)HDFS-示例
./sqoop import --connect jdbc:mysql://10.8.210.166:3306/recsys --username root --password root --table shop -m 1 --target-dir /user/recsys/input/shop/$today
HDFS轉(zhuǎn)MYSQ-示例
./sqoop export --connect jdbc:mysql://10.8.210.166:3306/recsys --username root --password root --table shopassoc --fields-terminated-by ',' --export-dir /user/recsys/output/shop/$today
示例參數(shù)說明
(其他參數(shù)我未使用,故不作解釋,未使用,就沒有發(fā)言權(quán),詳見命令help)
參數(shù)類型
參數(shù)名
解釋
公共
connect
Jdbc-url
公共
username
---
公共
password
---
公共
table
表名
Import
target-dir
制定輸出hdfs目錄,默認(rèn)輸出到/user/$loginName/
export
fields-terminated-by
Hdfs文件中的字段分割符,默認(rèn)是“\t”
export
export-dir
hdfs文件的路徑