涉及到的知识点:
- Sqoop的安装和配置,及常用命令
- Flume的安装和配置,及使用
Sqoop
数据采集引擎Sqoop的特点:
- 采集的是关系型数据库中的数据(批量)
- 一般用于离线计算
- 基于JDBC
- 用于在Oracle <-> Sqoop <-> HDFS、HBase、Hive间进行数据交换
Sqoop的安装和配置
(1)安装
tar -zxvf sqoop-1.4.5.bin__hadoop-0.23.tar.gz -C ~/training/
(2)配置环境变量
vi ~/.bash_profile
SQOOP_HOME=/root/training/sqoop-1.4.5.bin__hadoop-0.23
export SQOOP_HOMEPATH=$SQOOP_HOME/bin:$PATH
export PATHsource ~/.bash_profile
(3)将Oracle的驱动jar放到sqoop的lib目录(因为我们需要链接到Oracle获取它的模拟数据92万条)。jar包是C:\oracle\product\10.2.0\db_1\jdbc\lib下的ojdbc14.jar,拷贝到/root/training/sqoop-1.4.5.bin__hadoop-0.23/lib下即可
Oracle使用注意点:用户名、表名、列名必须大写
Sqoop的使用
Sqoop的可用命令如下:
命令 | 说明 |
---|---|
codegen | 根据数据块中的表结构生成对应的JavaBean |
create-hive-table | 根据Oracle的表结构创建Hive的表结构 |
eval | 在Sqoop中执行SQL |
export | 从HDFS中导数据到关系数据库中 |
help | 帮助信息 |
import | 将数据库表的数据导入到HDFS中,本质就是MapReduce程序 |
import-all-tables | 导入某个用户下所有的表 —-> 默认导入到: /user/root |
job | 用来生成一个sqoop的任务,生成后,该任务并不执行,除非使用命令执行该任务。 |
list-databases | (1)针对Oracle:当前数据库中所有的用户名(2)针对MySQL: 所有的数据库的名字 |
list-tables | 打印出关系数据库某一数据库的所有表名 |
merge |