Sqoop数据分析引擎安装与使用
==>什么是Sqoop ?
Sqoop 是一个开源的数据处理引擎,主要是通过 JDBC 为媒介, 在Hadoop(Hive)与 传统的关系型数据库(Oracle, MySQL,Postgres等)间进行数据的传递
HDFS Hive HBase < JDBC > Oracle, MySQL,
==> Sqoop 的安装:
1. 将安装包解压:tar zxf sqoop-1.4.6.bin__hadoop-0.23.tar.gz -C /app
2. 配置环境变量:
vim ~/.bash_profile
SQOOP_HOME=/app/sqoop-1.4.6.bin__hadoop-0.23
export SQOOP_HOME
PATH=$SQOOP_HOME/bin:$PATH
================================================================
3. 因为需要通过 JDBC 与数据库进行数据传输,所以需要将数据库的 JDBC 工具包放入到 lib 目录下
打开oracle 安装目录: C:/oracle/product/10.2.0/db_1/jdbc/lib
将 ojdbc14.jar 文件复制到 sqoop 的 bin 目录下: /app/sqoop-1.4.6.bin__hadoop-0.23/bin
==> Sqoop 的命令详解:(注意:在oracle 中,用户名和表名要全部大写)
codegen —> 将关系数据库表映射为一个Java 文件, Java class类, 以及相关的 jar 包
sqoop codegen /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle /
–table EMP
================================================================
create-hive-table —> 生成与关系数据库表结构对应的 Hive 表
sqoop create-hive-table /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle /
–table EMP
–hive-table emphive
================================================================
eval —> 快速地使用 SQL 语句对关系数据库进行操作
这可以在使用的 import 这种工具进行数据导入的时候,检查 SQL 语句是否正确,并将结果显示在控制台
sqoop eval /
–connect jdbc:oracal:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle
–query "select * from emp"
================================================================
export —> 从hdfs 中导数据到关系数据库中
sqoop export /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle /
–table STUDENTS # 表
–export-dir /students # HDFS 中的数据表
================================================================
import —> 将数据库表的数据导入到 HDFS 中
sqoop export /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle
–table EMP /
–target-dir /emp
————————————————————————————————————-
—>将数据导入到HBase 中(需要先将表创建)
sqoop import /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle /
–table EMP –columns empno, ename, sal, deptno /
–hbase-table emp –hbase-row-key empno –column-family empinfo
row-key 列族
================================================================
import-all-tables —> 将数据库中所有的表的数据导入到 HDFS 中
sqoop import-all-tables /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle /
–m 1
================================================================
job –> 用来生成一个 Sqoop 的任务,生成后,该 任务不执行,除非使用命令执行该任务
================================================================
list-databases —> 打印出关系数据库所有数据库名
sqoop list-databases /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl
–username SYSTEM –password oracle
================================================================
list-table —> 打印出关系数据库中所有的表名
sqoop list-table /
–connect jdbc:oracle:thin:@192.168.10.210:1521:orcl /
–username SCOTT –password oracle /
-m 1
================================================================
merge —> 将 HDFS 中不同目录下的数据合在一起,并存放在指定的目录中
================================================================
metastore —> 记录 Sqoop job 的元数据信息
================================================================
version —> 显示 Sqoop 版本信息
================================================================
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/192397.html