Sqoop是什么
Sqoop 是连接传统关系型数据库和Hadoop 的桥梁,主要功能是,
把关系型数据库的数据导入到Hadoop 系统( 如HDFS、HBase 和Hive) 中
把数据从Hadoop 系统里抽取并导出到关系型数据库里
可以利用MapReduce 加快数据传输速度,使用批处理的方式进行数据传输
关系数据库与Hadoop之间传递数据
全量导入:
sqoop
增量导入:
Canal(https://github.com/alibaba/canal)
DataBus(https://github.com/linkedin/databus )
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 cities 注: --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 注: --connnect: 指定JDBC URL --username/password:mysql数据库的用户名 --table:要导入的数据库表 export-dir:数据在HDFS上存放目录
Sqoop 与其他系统结合
sqoop import \ --connect jdbc:mysql://mysql.example.com/sqoop \ --username sqoop \ --password sqoop \ --table cities \ --hive-import sqoop import \ --connect jdbc:mysql://mysql.example.com/sqoop \ --username sqoop \ --password sqoop \ --table cities \ --hbase-table cities \ --column-family world