大数据(八) - Sqoop

jopen 8年前

Sqoop是什么
         Sqoop:SQL-to-Hadoop
        连接 传统关系型数据库 和 Hadoop 的桥梁
                把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS HBase 和 Hive) 中;
                把数据从 Hadoop 系统里抽取并导出到关系型数据库里。
        利用MapReduce加快数据传输速度 : 将数据同步问题转化为MR作业
         批处理方式进行数据传输:实时性不够好

Sqoop优势</span>
        高效、可控地利用资源
                任务并行度,超时时间等
        数据类型映射与转换
                可自动进行,用户也可自定义
        支持多种数据库
                MySQL
                Oracle
                PostgreSQL

Sqoop import</span>
        将数据从关系型数据库导入Hadoop中
                步骤1:Sqoop与数据库Server通信,获取数据库表的元数据信息; 
                步骤2:Sqoop启动一个Map-Only的MR作业,利用元数据信息并行将数据写入Hadoop。
        特点:可以指定hdfs路径,指定关系数据库的表,字段,连接数(不压垮数据库),可以导入多个表,支持增量导入(手动指定起始id、事件,或自动记录上次结束位置,自动完成增量导入)

Sqoop Export</span>
        将数据从Hadoop导入关系型数据库导中
                步骤1:Sqoop与数据库Server通信,获取数据库表的元数据信息;
                步骤2:并行导入数据:
                        将Hadoop上文件划分成若干个split;
                        每个split由一个Map Task进行数据导入。

Sqoop与其他系统结合</span>
        Sqoop可以与Oozie、Hive、Hbase等系统结合;

来自: http://blog.csdn.net//matthewei6/article/details/50534566