• 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

  • 相关阅读:
    Open_basedir 开启后项目变慢
    PHP导入百万级excel数据方案
    使用Python统计项目代码行数(Python3.X)
    AttributeError: '_io.TextIOWrapper' object has no attribute 'xreadlines'
    startTime = time.clock()AttributeError: module 'time' has no attribute 'clock
    SyntaxError: Missing parentheses in call to 'print'. Did you mean print
    误删 Win10 应用商店应该如何恢复?
    win10无法开启Windows Defender Firewall服务,错误1058
    设备管理器里面的AAP Server是什么?
    layui——Cannot create property 'LAY_TABLE_INDEX' on number '2'
  • 原文地址:https://www.cnblogs.com/liuwei6/p/6740480.html
Copyright © 2020-2023  润新知