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. 【杂记】JavaScript篇

    35.jquery中ifram子窗体调用父窗体方法.父窗体调用子窗体方法 //调用子窗体中的方法. ].contentWindow;//获取子窗体的window对象 childWindow.subFo ...

  2. 阿里 otter搭建过程整理

    1 环境说明: 本机ip 192.168.8.3 虚拟机1 ip 192.168.8.5 虚拟机2 ip 192.168.8.6 虚拟机采取桥接模式 虚拟机系统为CentOS 2.6.32-279.e ...

  3. (转)SVN服务器搭建和使用(二)

    上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用. 首先打开Vi ...

  4. MWeb 1.4 新功能介绍二:静态博客功能增强

    MWeb 比较有特色的是一键生成静态博客功能,然后从 MWeb 最开始规划要做静态博客生成功能时,我就希望 MWeb 的静态博客生成功能在易用的同时,还要有很强大的扩展性. 比如说能自己增加网站公告, ...

  5. android selector 开始自定义样式

    Selector的结构描述: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:a ...

  6. Spring的Ioc和AOP扩展

    多种方式实现依赖注入: 这里唯一需要说明的是如果要使用P命名空间实现属性注入,需要添加命名空间的声明: 如我的xml里红色字体: <?xml version="1.0" en ...

  7. R 操作矩阵和计算SVD的基本操作记录

    在R中可以用函数matrix()来创建一个矩阵,应用该函数时需要输入必要的参数值. > args(matrix) function (data = NA, nrow = 1, ncol = 1, ...

  8. AngularJs自定义指令--执行顺序 (原文:http://www.cnblogs.com/sagacite/p/4624227.html)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. OJ生成器(一)制作Online Judge前的准备和策划

    我这校区新的微机老师斗志昂扬,准备让我们这学校萎靡的信息技术竞赛重振雄风.然后有一次我半开玩笑地说建一个自己的OJ吧,老师也就鼓励我去做了. 开什么玩笑……!我可是马上要参加NOIP的人! 于是老师说 ...

  10. ORA-1034 ORACLE not available (转)

    http://blog.csdn.net/onlyone_htliu/article/details/6075150 前言 每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA- ...