1.sqoop的安装

  1.1 与hadoop和hive的集成,修改/opt/cdh/sqoop-1.4.5-cdh5.3.6/conf/sqoop-env.sh 文件

    

  1.2 验证安装是否成功  bin/sqoop version   查看sqoop版本

    

2.sqoop 基本操作

  2.1 查看sqoop可用的命令 bin/sqoop help

    

  2.2 查看某个命令的具体用法 bin/sqoop help 命令

    

  2.3 查看可用的数据库列表

    bin/sqoop list-databases \
      --connect jdbc:mysql://life-hadoop.life.com:3306/ \
      --username root \
      --password root

    

  2.4 将mysql表中的数据导入到hdfs中

    bin/sqoop import \
      --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
      --username root \
      --password root \
      --table my_user \
      --target-dir /user/yanglin/sqoop/import/my_user \

      --num-mappers 1

    

    注:如果不指定导入的目录--target-dir  会默认导入到用户根目录 /user/yanglin/

      默认导出格式为textfile,字段中间用,隔开

      导出格式可以通过

        --as-avrodatafile

         --as-parquetfile

        --as-sequencefile

        --as-textfile  默认

      同时可以自定只导出指定的列  --columns  id,account

      可以通过sql语句进行导入数据的清洗  --query  'select id ,account from my_user'   其中where 语句中必须包含$CONDITIONS

        bin/sqoop import \
          --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
          --username root \
          --password root \
          --query 'select id ,account from my_user where $CONDITIONS' \

          --target-dir /user/yanglin/sqoop/import/my_user_query \
          --num-mappers 1 \
          --as-parquetfile

        

      可以指定压缩格式 --compress  和  --compression-codec

        bin/sqoop import \
          --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
          --username root \
          --password root \
          --query 'select id ,account from my_user where $CONDITIONS' \
          --target-dir /user/yanglin/sqoop/import/my_user_compress \
          --num-mappers 1 \
          --as-parquetfile \
          --compress \
          --compression-codec org.apache.hadoop.io.compress.SnappyCodec

        

      可以指定导入数据的字段间的分割符,默认为,--fields-terminated-by '\t'

        bin/sqoop import \
          --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
          --username root \
          --password root \
          --table my_user \
          --target-dir /user/yanglin/sqoop/import/my_user_terminated \
          --num-mappers 1 \
          --fields-terminated-by '\t'

        

      可以通过指定 --delete-target-dir 在运行前,如果输出目录存在,则删除

    2.4.2 增量导入

      方法一:使用--query 将指定的输入导入

        bin/sqoop import \
          --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
          --username root \
          --password root \
          --query 'select * from my_user where $CONDITIONS and id>3 and id<7' \
          --target-dir /user/yanglin/sqoop/import/my_user_query_where \
          --num-mappers 1 \
          --fields-terminated-by '\t'

        

      方法二:使用sqoop自带命令,指定--check-column(依据哪一个列进行增量导入),--incremental(增量的方式为追加),--last-value(最后一条数据的id值)

        bin/sqoop import \
          --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
          --username root \
          --password root \
          --table my_user \
          --target-dir /user/yanglin/sqoop/import/my_user_table_where \
          --num-mappers 1 \
          --fields-terminated-by '\t' \
          --check-column id \
          --incremental append \
          --last-value 3 \
          --direct

        

    2.4.3 通过指定--direct,我们可以指定通过mysql将数据进行导出,速度更快

  2.5 数据导出到rdms

    bin/sqoop export \
      --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
      --username root \
      --password root \
      --table my_user \
      --export-dir /user/yanglin/sqoop/export/user \
      --num-mappers 1 \
      --fields-terminated-by '\t' \
      --direct

    

  2.6 将rdmb中的数据导入到hive表中

    bin/sqoop import \
      --connect jdbc:mysql://life-hadoop.life.com:3306/sqoop \
      --table my_user \
      --username root \
      --password root \
      --num-mappers 1 \
      --fields-terminated-by '\t' \
      --hive-import \
      --hive-database chd_hive \
      --hive-table user_import

     

3.使用脚本进行sqoop导入和导出

  3.1 编写脚本文件sqoop_import.sql

    #使用文件对sqoop进行导入
    import
    #mysql数据库连接
    --connect
    jdbc:mysql://life-hadoop.life.com:3306/sqoop
    #mysql数据库用户名
    --username
    root
    #mysql数据库密码
    --password
    root
    #mysql数据库要导出的表名
    --table
    my_user
    #导出到hdfs系统中路径
    --target-dir
    /user/yanglin/sqoop/import/my_user_options
    #导出数据中字段的分割符
    --fields-terminated-by
    '\t'

  3.2 运行脚本 --options-file

     bin/sqoop --options-file /opt/data/sqoop_import.sql --num-mappers 1

     

     

        

    

    

    

sqoop的使用的更多相关文章

  1. sqoop:Failed to download file from http://hdp01:8080/resources//oracle-jdbc-driver.jar due to HTTP error: HTTP Error 404: Not Found

    环境:ambari2.3,centos7,sqoop1.4.6 问题描述:通过ambari安装了sqoop,又添加了oracle驱动配置,如下: 保存配置后,重启sqoop报错:http://hdp0 ...

  2. 安装sqoop

    安装sqoop 1.默认已经安装好java+hadoop 2.下载对应hadoop版本的sqoop版本 3.解压安装包 tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-a ...

  3. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  4. Oozie分布式任务的工作流——Sqoop篇

    Sqoop的使用应该是Oozie里面最常用的了,因为很多BI数据分析都是基于业务数据库来做的,因此需要把mysql或者oracle的数据导入到hdfs中再利用mapreduce或者spark进行ETL ...

  5. [大数据之Sqoop] —— Sqoop初探

    Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中. Sqoop也是基于Mapreduce来做的数据导入. 关于 ...

  6. [大数据之Sqoop] —— 什么是Sqoop?

    介绍 sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具.你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中:也可以把数据从hdfs中导出到关系型数据 ...

  7. Sqoop切分数据的思想概况

    Sqoop通过--split-by指定切分的字段,--m设置mapper的数量.通过这两个参数分解生成m个where子句,进行分段查询.因此sqoop的split可以理解为where子句的切分. 第一 ...

  8. sqoop数据导出导入命令

    1. 将mysql中的数据导入到hive中 sqoop import --connect jdbc:mysql://localhost:3306/sqoop --direct --username r ...

  9. Apache Sqoop - Overview——Sqoop 概述

    Apache Sqoop - Overview Apache Sqoop 概述 使用Hadoop来分析和处理数据需要将数据加载到集群中并且将它和企业生产数据库中的其他数据进行结合处理.从生产系统加载大 ...

  10. sqoop使用中的小问题

    1.数据库连接异常 执行数据导出 sqoop export --connect jdbc:mysql://192.168.208.129:3306/test --username hive --P - ...

随机推荐

  1. ajax交互方法实现

    AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个 ...

  2. 第二篇:白话tornado源码之待请求阶段

    上篇<白话tornado源码之一个脚本引发的血案>用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码. 概述 上图是torna ...

  3. jsp页面常用控件

    1.点击按钮返回 上一页: <input type="submit" value="返回" onclick="javascript :histo ...

  4. Issue 7: 网络in action

    网络运维基础 基础参数 配置:IP,子网掩码,网关,dns服务器,dhcp服务器 基础应用 在网关设置上搭建VPN组网 改host文件 单台主机原则上只能配置一个网关 协议 协议是全球都遵守的一套编码 ...

  5. 【CSS 杂记】

    1.CSS达到截取效果 地方卡机了会计师的立法及  =>  地方卡机了... max-width: 400px; overflow: hidden; white-space: nowrap; t ...

  6. ios - kvo观察者示例

    首先创建Person分类 #import <Foundation/Foundation.h> @interface Person : NSObject @property (nonatom ...

  7. MWeb 2.0 测试版可以下载啦,这次是公开测试,感兴趣的朋友可以试试

    2.0 版是 MWeb 发布以来,最重要的一个版本.MWeb 自去年一月份发布以来,获得了很多朋友的建议,在此非常感谢!没有你们,2.0 版可能就不能出来!然后再次感谢 Producter: http ...

  8. C#操作Mongodb的心得

    Mongodb是一个强大的文档型数据库,采用BSON的数据格式.本文主要采用其官方的C#驱动来操作其表中的集合.驱动版本为1.1.0,下载地址为: http://mongodb.github.io/m ...

  9. getchar的利用

    /*以每行一个单词的形式打印其输入 */ getchar   putchar函数,是逐个打印和输入(逐个循环打印) #include <stdio.h> int main() { int ...

  10. Web攻防之XSS,CSRF,SQL注入

    摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨 ...