Sqoop数据迁移工具



一、概述

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

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

 

二、工作机制

      将导入或导出命令翻译成 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 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值