sqoop1.4.6安装

sqoop1.4.6  安装配置 

下载地址: http://sqoop.apache.org

(1)、编辑/home/lin/hadoop/sqoop-1.4.6/conf/sqoop-env.sh

若是不适用hbase和hive的话就不用配置,需要使用zookeeper的话自己配置zookeeper的home(我这里暂时没有使用就不用配置)
export HADOOP_COMMON_HOME=/home/lin/hadoop/hadoop-2.6.1
export HADOOP_MAPRED_HOME=/home/lin/hadoop/hadoop-2.6.1
export HBASE_HOME=/home/lin/hadoop/hbase-1.1.2
export HIVE_HOME=/home/lin/hadoop/apache-hive-1.2.1-bin


(2)、编辑/home/lin/hadoop/sqoop-1.4.6/bin/configure-sqoop

根据需要注释掉自己不用的东西:

我根据自己的需要注释掉了  HCAT_HOME 、ACCUMULO_HOME、ZOOKEEPER_HOME

(3)、测试

使用 sqoop version 查看


证明配置成功~

(4)、数据导入测试

若是需要连接oracle需要导入oracle 的驱动jar  http://download.csdn.net/detail/linlinv3/9048953
若是需要连接mysql需要导入mysql的驱动jar
下面简单测试几个,其余的可以看官方doc,很详细;
#database named hive on the host 192.168.0.166    若是不写--target-dir 则默认是hdfs上的user/username/tablename 路径
导入数据到hdfs上
mysql :
sqoop import --connect jdbc:mysql://192.168.0.166/hive --username hive --table testlin --target-dir /user/sqoop

oracle : oracle 的表名需要大写,要不会报错,说找不到;
sqoop import --connect jdbc:oracle:thin:@192.168.0.105:1521:ORCL  --username hbea --password fulong --table ACTION_LOG 

带where条件的导入: and $CONDITIONS 是必须要这么写的  --split-by  也是必须要写的
sqoop import --connect jdbc:oracle:thin:@192.168.0.105:1521:ORCL  --username hbea --password fulong --query 'select ACTION_TIME,SESSION_ID FROM ACTION_LOG WHERE USER_ID IS NOT NULL  and $CONDITIONS' --target-dir /user/sqoop/query1 --split-by ACTION_TIME
 

         
         
hive: 官网 7.2.11  Table 8  讲了sqoop导入数据到 hive 的语法  -m参数控制Map tasks的数目,默认是4个
sqoop import --connect jdbc:oracle:thin:@192.168.0.105:1521:ORCL  --username hbea --password fulong --table ACTION_LOG   --columns "ACTION_TIME,USER_ID"  -m 1   --hive-import --hive-database HIVE --hive-table HIVE_LOG  --hive-drop-import-delims  --fields-terminated-by "\t" --lines-terminated-by "\n" 





注意一: 
     如果你的表中关键字不是根据其范围均匀的分布,就可能导致不平衡的任务。这个时候你需要明确的选择一个不同的列使用--split-by指定分隔参数。目前,Sqoop,还不支持对各个列索引进行分隔,如果一个表没有索引列或者含有多个关键字列,你必须手动的指定一个分隔列。
注意二:
    如果SQL语句中使用双引号(“”),则必须使用\$CONDITIONS代替$CONDITIONS,使你的shell不将其识别为shell自身的变量。
注意三:
    目前版本的Sqoop中,使用自由形式查询导入,只提供简单的查询,没有复杂的和“OR”条件查询在where子句中。



ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.OracleDriver是因为缺少驱动包,下载所需驱动包:http://download.csdn.net/detail/linlinv3/9048953 解决问题


 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值