一、Sqoop的简介:

Sqoop是一个数据采集引擎/数据交换引擎,采集关系型数据库(RDBMS)中的数据,主要用于在RDBMS与HDFS/Hive/HBase之间进行数据传递,可以通过sqoop import命令将RDBMS中的数据导入到HDFS/Hive/HBase中,也可以通过sqoop export命令将HDFS/Hive/HBase中的数据导入到RDBMS中,特点:批量采集数据,底层依赖于MapReduce程序,工作原理:通过JDBC连接到关系型数据库(RDBMS)。

二、Sqoop的实验条件:

实验条件:安装Windows XP操作系统和oracle数据库。

为什么要选择关系型数据库中的oracle数据库呢?

原因:1、在windows系统上安装oracle数据库比在linux系统上更简单。2、oracle数据库中的SH用户含有sales订单表,表中包含92万条记录,SCOTT用户含有现成的员工表emp.csv和部门表dept.csv。

三、各种数据库对应的驱动类名和URL格式:

数据库 驱动类名 URL格式 端口号

oracle oracle.jdbc.OracleDriver jdbc:oracle:thin:@IP:1521:orcl 1521

mysql com.mysql.jdbc.Driver jdbc:mysql://IP:3306/dbname?name=value 3306

hive org.apache.hive.jdbc.HiveDriver jdbc:hive2://IP:10000/dbname 10000

四、安装和配置Sqoop:

注:不需要修改配置文件

1、安装sqoop:tar -zxvf sqoop-1.4.5bin_hadoop-0.23.tar.gz -C ~/training

2、配置SQOOP_HOME环境变量:

export SQOOP_HOME=/root/training/sqoop-1.4.5bin_hadoop-0.23

export PATH=$SQOOP_HOME/bin:$PATH

五、使用sqoop语句采集RDBMS中的数据:

1、导入员工表EMP中的所有数据:

sqoop import --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --username SCOTT --password tiger --table EMP --target-dir /sqoop/import/emp1

2、导入员工表EMP中的指定列:

sqoop import --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --usrname SCOTT --password tiger --table EMP -column ENAME,SAL --target-dir /sqoop/import/emp2

3、导入SALES表中的所有数据:

sqoop import --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --username SH --password sh --table SALES --target-dir /sqoop/import/sales -m 1

4、导入SCOTT用户下的所有表到HDFS中:

sqoop import-all-tables --connect jdbc:oracle:thin:@192.168.182.157:1521:orcl --usernmae SCOTT --password tiger

5、导出HDFS中的数据到RDBMS中:

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

六、oracle数据库与mysql数据库的区别:

1、oracle数据库区分大小写,需要大写的有:用户名、表名、列名,mysql数据库不区分大小写。

2、oracle数据库只有一个数据库:orcl,在安装oracle数据库时自动创建,mysql数据库有很多数据库。

3、oracle数据库有很多用户,表属于用户,mysql数据库有很多数据库,表属于数据库,数据库对不同用户设置了不同的访问权限。

七、Sqoop与Flume的相同与不同:

相同:sqoop和flume都是数据采集引擎。

不同:sqoop的特点:批量采集数据,flume的特点:实时采集数据,主要用于实时采集系统中。

作者:李金泽AllenLi,清华大学硕士研究生,研究方向:大数据和人工智能。

最新文章

  1. [转载]Cookie/Session的机制与安全
  2. 关于FloatingActionButton
  3. 【JAVA】 UIMnager
  4. Oracle 12c In Memory Option初探
  5. JQuery 上传文件插件 Uploadify1
  6. java PKCS7Padding 加密Cannot find any provider supporting AES/CBC/PKCS7Padding 解决办法
  7. POJ 1804
  8. Samba服务器配置参考链接
  9. C#中对值类型和引用类型的一点认识
  10. ios学习之路四(新建Sprite Kit 项目的时候出现apple LLVM 5.0 error)
  11. 充电-ios(未完更新中...
  12. Leetcode:Two Sum
  13. vty密码登录,到AAA验证登录,以及远程配置网络
  14. requests和session的区别
  15. python(61):str 和 bytes 转换
  16. Verilog HDL按位操作符与归约操作符的区别
  17. const int *p 和int * const p 的区别
  18. Oracle数据库中的数据出错的解决办法
  19. Android的事件分发机制
  20. CSS技巧收集——巧用滤镜

热门文章

  1. 【读书笔记】iOS-网络-应用间通信
  2. html5 图片上传 预览
  3. SoapUI 接口测试之post提交本地数据文件
  4. 单元测试(一)-NUnit基础
  5. window.event.returnvalue=false;不起作用
  6. [WPF 容易忽视的细节] —— x:Name与Name属性
  7. windows端安装maven
  8. linux信息收集篇之sosreport
  9. IP解析计算机名称
  10. 第 15 章 位操作(invert4)