数据采集引擎Sqoop

Sqoop概述

官网 http://sqoop.apache.org/
场景
      传统型缺点,分布式存储。把传统型数据库数据迁移。
      Apache Sqoop(TM)是一种用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效
传输批量数据的工具 。

数据交换:Oracle <---> Sqoop <---> HDFS、HBase、Hive

安装部署

解压
修改配置
vi sqoop-env.sh
export HADOOP_COMMON_HOME=/root/hd/hadoop-2.8.4
export HADOOP_MAPRED_HOME=/root/hd/hadoop-2.8.4
export HIVE_HOME=/root/hd/hive
export ZOOCFGDIR=/root/hd/zookeeper-3.4.10/conf
发送mysql/oracle驱动到lib下
检测是否安装成功    bin/sqoop help

使用sqoop

注意:如果是Oracle,大写:用户名、表名、列名

1 codegen            Generate code to interact with database records
  sqoop codegen --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --table EMP --outdir /root/sqoop

2  create-hive-table  Import a table definition into Hive
  根据Oracle的表结构创建Hive的表结构
  sqoop create-hive-table --connect jdbc:oracle:thin:@192.168.137.129:1521:orcl --username SCOTT --password tiger --table EMP --hive-table emphive

3  eval    Evaluate a SQL statement and display the results  
   在Sqoop执行SQL
   sqoop eval --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --query 'select * from emp where deptno=10'
4  export             Export an HDFS directory to a database table
5  help               List available commands
6  import             Import a table from a database to HDFS
   sqoop import --help   ----> 本质是:就是MR程序
   导入数据到HDFS
   sqoop import --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --table EMP --target-dir /sqoop/import/emp1
   导入EMP表,指定导入列
   sqoop import --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger --table EMP --columns ENAME,SAL --target-dir /sqoop/import/emp2
7  import-all-tables  Import tables from a database to HDFS
   sqoop import-all-tables --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SCOTT --password tiger 
8  list-databases     List available databases on a server
   针对Oracle:当前数据库中所有的用户名
   针对MySQL: 所有的数据库的名字
   sqoop list-databases --connect jdbc:oracle:thin:@192.168.157.163:1521/orcl --username SYSTEM --password password
9  list-tables        List available tables in a database
   sqoop list-tables --connect jdbc:oracle:thin:@192.168.223.133:1521:orcl --username SCOTT --password tiger
10 将数据导入HBase(需要事先将表创建)
	sqoop import --connect jdbc:oracle:thin:@192.168.137.129:1521:orcl --username SCOTT --password tiger --table EMP --columns empno,ename,sal,deptno --hbase-table emp --hbase-row-key empno --column-family empinfo 
11 mysql导入到hive  需要先创建hive表
    bin/sqoop import --connect jdbc:mysql://hd09-01:3306/sq --username root --password root --table user1 --num-mappers 1 --hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table user_sqoop



猜你喜欢

转载自blog.csdn.net/baidu_41766416/article/details/86351871