`
tobyqiu
  • 浏览: 39299 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sqoop 1.4.4 使用1

 
阅读更多

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  

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics