Sqoop2的安裝
簡介
sqoop用于關(guān)系型數(shù)據(jù)庫和分布式文件系統(tǒng)之間進(jìn)行數(shù)據(jù)遷移。sqoop1.4.x也被稱為sqoop1, sqoop1.99.x也被稱為sqoop2
軟件環(huán)境
Hadoop-2.6.3偽分布式 + sqoop1.99.6
注意: sqoop1.99的各個版本和hadoop2的版本之間存在一個兼容性的問題,上述的兩個版本是相互兼容的, 若兩個版本不兼容, 會出現(xiàn)各種問題
安裝簡介
sqoop2的安裝分為server端和client端。
server負(fù)責(zé)與hadoop集群通信進(jìn)行數(shù)據(jù)的遷移,client端負(fù)責(zé)與用戶和server交互。
client端:不用安裝, 只需要將其安裝包解壓到集群中任何的機(jī)器上去,然后對其進(jìn)行解壓即可, 無需其他額外的配置。
server端安裝配置
解壓軟件包到一個目錄下-
修改環(huán)境變
export SQOOP_HOME=/home/zj/sqoop1.99.6
export PATH=$PATH:$SQOOP_HOME/bin
export CATALINA_BASE=$SQOOP_HOME/server
export LOGDIR=$SQOOP_HOME/logs/-生效環(huán)境變量的配置
source 配置文件名
修改sqoop配置:
vi server/conf/sqoop.properties
將org.apache.sqoop.submission.engine.mapreduce.configuration.directory后面hadoop的位置修改為自己安裝的hadoop配置文件位置,我的為:/home/zj/hadoop-2.6.3/etc/hadoop/修改sqoop讀取hadoop的jar包的路徑 vi /sqoop/server/conf/catalina.properties
將common.loader行后的/usr/lib/hadoop/lib/.jar改成自己的hadoop jar 包目錄,我的為:
/home/zj/hadoop2.6.3/share/hadoop/common/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/common/lib/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/hdfs/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/hdfs/lib/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/mapreduce/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/mapreduce/lib/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/tools/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/tools/lib/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/yarn/.jar,
/home/zj/hadoop-2.6.3/share/hadoop/yarn/lib/*.jar
** 注意: 在修改common.loader的過程中, 不能換行**
本步驟的另外的一種方法是: 直接將上訴的包 拷貝到$SQOOP_HOME/server/lib文件夾內(nèi)部- 將mysql的連接jar包拷貝的¥SQOOP_HOME/lib文件夾中(lib文件夾需要自己創(chuàng)建)到此sqoop就基本配置完成可以直接運(yùn)行.
/bin/sqoop.sh server start啟動sqoop了
Sqoop2的使用demo
- 啟動SQOOP:
$./bin/sqoop.sh server start
啟動成功, 可以使用jsp命令看到Bootstrap進(jìn)程。 - 進(jìn)入客戶端交互模式:
$./bin/sqoop.sh client - 在客戶端連接server
sqoop:000> set server --host localhost 12000 --webapp sqoop(因為這里是在偽分布式, 所以寫的是Localhost)下面是不同設(shè)置的效果:
shellsqoop:000> set server --host master 12000
-webapp sqoopServer is set successfullysqoop:000> show version --allclient version: Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8 Compiled by root on Wed Apr 29 10:40:43 CST 20150
[main] WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform...
using builtin-java classes where applicableException has occurred during processing command Exception: org.apache.sqoop.common.SqoopException Message: CLIENT_0000:An unknown error has occurred
sqoop:000> set server --host localhost 12000
--webapp sqoopServer is set successfully
sqoop:000> show version --all
client version: Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8 Compiled by root on Wed Apr 29 10:40:43 CST 2015server version: Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8
Compiled by root on Wed Apr 29 10:40:43 CST 2015API versions: [v1]```
當(dāng)看到show version -all正確的顯示 就說明了鏈接上了服務(wù)器
* 后面的demo測試可以參考http://sqoop.apache.org/docs/1.99.6/Sqoop5MinutesDemo.html
* 下面是自己測試是任務(wù)的執(zhí)行的效果輸出中說寫入三條, 但是hdfs文件中只有一條記錄 ,原因不明。