Sqoop是什么
Sqoop:SQL-to-Hadoop
连接传统关系型数据库和Hadoop的桥梁
把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS、HBase 和 Hive) 中;
把数据从 Hadoop 系统里抽取并导出到关系型数据库里。
利用MapReduce
批处理方式进行数据传输
Sqoop优势
高效、可控的利用资源
任务并行度、超时时间等
数据类型映射与转换
可自动进行,用户也可自定义
支持多种数据库
MySQL
Oracle
PostgreSQL
Sqoop1架构
Sqoop2架构
Sqoop import
将数据从关系型数据库导入Hadoop 中
步骤1 :Sqoop 与数据库Server通信,获取数据库表的元数据信息;
步骤2 :Sqoop 启动一个Map-
Only 的MR 作业,利用元数据信息并行将数据写入Hadoop 。
Sqoop import使用
sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table person
--target-dir
--connnect: 指定JDBC URL
--username/password :mysql 数据库的用户名
--table :要读取的数据库表
Sqoop Export
将数据从Hadoop 导入关系型数据库导中
步骤1 :
Sqoop 与数据库Server通信,获取数据库表的元数据信息;
步骤2 :并行导入数据:
将Hadoop 上文件划分成若干个split ;
每个split 由一个Map Task 进行数据导入。
Sqoop Export使用方法
sqoop export \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--export-dir cities
--fields-terminated-by
--connnect: 指定JDBC URL
--username/password :mysql 数据库的用户名
--table :要导入的数据库表
export-dir :数据在HDFS 上存放目录
Sqoop与其他系统结合
Sqoop 可以与Oozie 、Hive 、Hbase 等系统结合;
用户需要在sqoop-env.sh 中增加HBASE_HOME 、HIVE_HOME
来源:oschina
链接:https://my.oschina.net/u/3728166/blog/3063097