Sqoop

一、什么是Sqoop

Sqoop是一个MapReduce的程序
Sqoop是一个数据交换工具(RDBMS):import、export
在这里插入图片描述
就是一个采集关系型数据库的工具。

二、安装

1、解压

tar -zxvf sqoop-1.4.5.bin__hadoop-0.23.tar.gz -C /usr/local/

2、将名字变短一些

mv sqoop-1.4.5.bin__hadoop-0.23/ sqoop

3、配置环境变量

SQOOP_HOME=/usr/local/sqoop
export SQOOP_HOME

PATH=$SQOOP_HOME/bin:$PATH
export PATH

4、把Oracle的JDBC的jar放到$SQOOP_HOME/lib目录

这样Sqoop就可以连接Oracle数据库。

三、Sqoop的使用

注意:Oracle:用户名、表名一定要大写
使用员工表:scott/scott

1、codegen

根据表结构生成对应的Java文件

 sqoop codegen --connect jdbc:oracle:thin:@192.168.92.135:1521:orcl \
--username SCOTT --password scott --table EMP --outdir /tmp

2、create-hive-table

根据数据库的表结构创建Hive的表结构,不导入数据

sqoop create-hive-table --connect jdbc:oracle:thin:@192.168.92.135:1521:orcl \
--username SCOTT --password scott --table EMP --hive-table emphive

3、eval

在Sqoop中执行SQL

sqoop eval --connect jdbc:oracle:thin:@192.168.92.135:1521:orcl --username SCOTT --password scott --query "select * from emp where deptno=10"

4、export

导出,事先建表

sqoop export --connect jdbc:oracle:thin:@192.168.157.135:1521:orcl --username SCOTT --password tiger --table STUDENTS --export-dir /students

5、import

5.1、导入某张表

sqoop import --connect jdbc:oracle:thin:@192.168.92.135:1521:orcl --username SCOTT --password scott --table EMP --target-dir /sqoopemp

5.2、 导入HBase(事先在HBase中建表)


sqoop import --connect jdbc:oracle:thin:@192.168.92.135:1521:orcl --username SCOTT --password scott --table EMP --columns empno,ename,sal,deptno --hbase-table emp --hbase-row-key empno --column-family empinfo

5.3、增量导入

Incremental import arguments:
--check-column <column>        Source column to check for incremental
                                  change
--incremental <import-type>    Define an incremental import of type
                                  'append' or 'lastmodified'
--last-value <value>           上次导入的最大值。

例如:

sqoop import --connect jdbc:oracle:thin:@192.168.92.135:1521:orcl --username SCOTT  --password scott --table EMP  --fields-terminated-by ","  --target-dir /sqoopemp --check-column empno --incremental append --last-value 7394

–fields-terminated-by “\t” 是设置每列之间的分隔符,"\0001"是ASCII码中的1,它也是hive的默认行内分隔符, 而sqoop的默认行内分隔符为","

6、import-all-tables

导入某个用户下的所有表

sqoop import-all-tables --connect jdbc:oracle:thin:@192.168.157.135:1521:orcl --username SCOTT --password tiger -m 1

7、 list-databases (管理员)

操作Oracle:列出的是数据库中所有的用户名(SYS、SYSTEM)
操作MySQL:列出的是所有数据库的名字

sqoop list-databases --connect jdbc:oracle:thin:@192.168.157.135:1521:orcl --username SYSTEM --password password

8、list-tables

列出该用户下的表

sqoop list-tables --connect jdbc:oracle:thin:@192.168.157.135:1521:orcl --username SCOTT --password tiger

测试

导入Oracle中sh用户92万条数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值