1.修改配置 ? /home/sqoop-1.4.4/conf/sqoop-env.sh
export HADOOP_COMMON_HOME=/home/hadoop-2.3.0 export HADOOP_MAPRED_HOME=/home/hadoop-2.3.0 #export HBASE_HOME=/usr/local/hbase export HIVE_HOME=/home/hive-0.10.0 #export ZOOCFGDIR=/usr/local/zookeeper
?2.加入配置 /etc/profile
export JAVA_HOME=/lib/jdk1.6.0_30 export HADOOP_HOME=/home/hadoop-2.3.0 export HIVE_HOME=/home/hive-0.10.0 export ANT_HOME=/lib/apache-ant-1.9.0 export SQOOP_HOME=/home/sqoop-1.4.4 export HADOOP_MAPRED_HOME=${HADOOP_HOME} export HADOOP_COMMON_HOME=${HADOOP_HOME} export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$HADOOP_HOME/bin:$SQOOP_HOME/bin:$HIVE_HOME/bin:$PATH
?3.测试下?sqoop version
[root@localhost ~]# sqoop version Sqoop 1.4.4 git commit id 050a2015514533bc25f3134a33401470ee9353ad Compiled by vasanthkumar on Mon Jul 22 20:06:06 IST 2013
?4.测试导入HDFS?
?先写一个文件 /home/mysql.txt
import --connect jdbc:mysql://prchaz02823:3306/adventureworksdw2008r2 --username root --password root --table DimDate2 --null-string '\\N' --null-non-string '\\N' #--map-column-java #FullDateAlternateKey=DATE --split-by DateKey --target-dir /home/dimdate_txt --hive-import --hive-table adventureworksdw.dimdate2 --map-column-hive FullDateAlternateKey=timestamp --hive-overwrite #--direct
? 一个命令必须2行 一行是参数 一行是值 ,#是注释掉的 ?这个东西本质就是个属性文件.
? 我写的是直接导入hive ,hive虽然支持timestamp,但是如果不写map column hive 会默认把列变成了String,所以 overwrite了 column type mapping
--map-column-hive FullDateAlternateKey=timestamp
?这个地方有点BUG. 最好是全部小写,因为?FullDateAlternateKey 是有大小写的,指向的是Source column(mysql的列) 不是hive的column name. 如果写成了hive的column 会报 找不到列的错误.
?
?别的参数具体什么意思,去查看doc 就知道了http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html
?
?5.运行就开始跑了?
sqoop --options-file /home/mysql.txt
?
?备注下, 我这里是全表导入的,而去表是有主键的,默认是用主键做为split-by ?,如果没有主键的表这么写是报错的,需要指定 ? --split-by ?
?