首页 > 代码库 > Sqoop数据迁移工具

Sqoop数据迁移工具

一、概述

    sqoop apache 旗下一款“ Hadoop 和关系数据库服务器之间传送数据”的工具。

    导入数据: MySQLOracle 导入数据到 Hadoop HDFSHIVEHBASE 等数据存储系统;
    导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql
    Sqoop 的本质还是一个命令行工具,和 HDFSHive 相比,并没有什么高深的理论。

 技术分享

二、工作机制

      将导入或导出命令翻译成 mapreduce 程序来实现
      在翻译出的 mapreduce 中主要是对 inputformat outputformat 进行定制

三、sqoop安装

     安装 sqoop 的前提是已经具备 java hadoop 的环境
     安装包下载地址 http://ftp.wayne.edu/apache/sqoop/1.4.6/
     安装步骤 :

      (1)准备安装包 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
      (2) 解压安装包到安装目录
              tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C apps/
              cd apps
              mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop1.4.6
      (3) 进入到 conf 文件夹,找到 sqoop-env-template.sh,修改其名称为 sqoop-env.sh
              cd conf
              mv sqoop-env-template.sh sqoop-env.sh
     (4) 修改 sqoop-env.sh

技术分享

   (5) 加入 mysql 驱动包到 sqoop1.4.6/lib 目录下
          cp mysql-connector-java-5.1.39.jar apps/sqoop1.4.6/lib/
   (6) 配置系统环境变量
         vi /etc/profile
         然后输入:
        export SQOOP_HOME=/root/apps/sqoop1.4.6
         export PATH=$PATH:$SQOOP_HOME/bin
        然后保存退出
        source /etc/profile
   (7) 验证安装是否成功
          sqoop –version

技术分享

   (8)出现如图所示画面,证明安装成功,那么接下来就可以正常使用了。

四、sqoop基本命令介绍

     技术分享

技术分享

五、sqoop数据导入     

     “导入工具”导入单个表从 RDBMS 到 HDFS。表中的每一行被视为 HDFS 的记录。所有记录 都存储为文本文件的文本数据(或者 Avro、 sequence 文件等二进制数据)
技术分享

1、导入mysql数据到HDFS

 (1)普通导入

技术分享

如果我们没有给该命令指定导出的文件的存储路径,那么默认会保存在 HDFS 上的
/user/root/help_keyword 目中
其中,第一个 user 是固定的,第二个 root,表示链接的用户名,第三个表示表名

技术分享

技术分享

从以上结果可以得出一个结论: 如果没有指定路径,则会按默认规则生成路径,如果没有 指定分隔符,默认按照逗号分隔 

(2)指定分隔符和导入路径

技术分享

技术分享

(3)导入where条件数据

我们可以导入表的使用 Sqoop 导入工具, "where"子句的一个子集。它执行在各自的数据库 服务器相应的 SQL 查询,并将结果存储在 HDFS 的目标目录。 
技术分享

技术分享

(4)导入 Query 结果数据

技术分享

技术分享

2、导入 MySQL HIVE

Sqoop 导入关系型数据到 hive 的过程是先导入到 hdfs,然后再 load 进入 hive

 

Sqoop数据迁移工具