sqoop:介绍 + 配置 + 基本案例

介绍

  • 基本:Hadoop(Hive)与传统数据库的  数据导入导出工具
  • 原理:将导入和导出命令转换成mapreduce程序来实现
  • 依赖:Hadoop环境基于MapReduce  + Java环境

配置

1.下载上传:http://mirrors.hust.edu.cn/apache/sqoop/1.4.7/

2.sqoop-env.sh

  • export HADOOP_COMMON_HOME=/cluster/hadoop-2.7.3
    export HADOOP_MAPRED_HOME=/cluster/hadoop-2.7.3
    export ZOOKEEPER_HOME=/cluster/zookeeper-3.4.5
    export ZOOCFGDIR=/cluster/zookeeper-3.4.5
    export HIVE_HOME=/cluster/hive
    export HBASE_HOME=/cluster/hbase

3.复制jdbc驱动到sqoop的lib目录下

  • cp mysql-connector-java-5.1.27-bin.jar /opt/module/sqoop-1.4.7.bin__hadoop-2.6.0-alpha/lib/

“导入”概念:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,即使用import

“导出”概念:从大数据集群(HDFS,HIVE,HBASE)向非大数据集群(RDBMS)中传输数据,即使用export


使用案例:RDBMS到HDFS

全部导入

  • sqoop import
    	--connect jdbc:mysql://ip:port/数据库名?useUnicode=true&characterEncoding=utf-8 \
    	--username 用户名
    	--password 密码
    	--table    表名	
    	--target-dir hdfs路径
    	--fields-terminated-by '\t' 
    	--num-mappers map数

查询导入     query中必须加  and $CONDITIONS  ,双引号时  $CONDITIONS前加转义 /

  • sqoop import
    	--connect jdbc:mysql://ip:port/数据库名?useUnicode=true&characterEncoding=utf-8 \
    	--username 用户名
    	--password 密码
    	--query 'sql语句 and $CONDITIONS;'
    	--target-dir hdfs路径
    	--delete-target-dir 
    	--fields-terminated-by '\t' 
    	--num-mappers map数

导入指定列

  • sqoop import
    	--connect jdbc:mysql://ip:port/数据库名?useUnicode=true&characterEncoding=utf-8 \
    	--username 用户名
    	--password 密码
    	--table 表名
    	--columns 列名,多个列名用逗号隔开
    	--target-dir hdfs路径
    	--delete-target-dir 
    	--fields-terminated-by '\t' 
    	--num-mappers map数

条件导入  where条件筛选

  • sqoop import
    	--connect jdbc:mysql://ip:port/数据库名?useUnicode=true&characterEncoding=utf-8 \
    	--username 用户名
    	--password 密码
    	--table 表名
    	--target-dir hdfs路径
    	--delete-target-dir 
    	--fields-terminated-by '\t' 
    	--num-mappers map数
    	--where "id=1" 

使用案例:RDBMS到Hive

  • sqoop import
    	--connect jdbc:mysql://ip:port/mysql数据库名 \
    	--username 用户名 
    	--password 密码
    	--table 表名
    	--hive-import 
    	--hive-overwrite  覆盖模式
    	--hive-table hive表名
    	--num-mappers map数
    	--fields-terminated-by "\t" 
    注意:第一步将数据导入到HDFS,第二步将导入到HDFS的数据迁移到Hive仓库

使用案例:RDBMS到HBase

  • sqoop import
    	--connect jdbc:mysql://ip:port/mysql数据库名 \
    	--username 用户名 
    	--password 密码
    	--table 表名
    	--columns "列名1,列名2,..." 
    	--column-family "列族名" 
    	--hbase-create-table 
    	--hbase-row-key "行键名" 
    	--hbase-table "hbase表名" 
    	--split-by id
    	--num-mappers map数



    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值