• Sqoop学习笔记_Sqoop的基本使用一


    Sqoop

     

    关系DB与Hive/HDFS/HBase导入导出的Mapreduce框架。

    http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.0/SqoopUserGuide.html

     

    ETL: Extraction-Transformation-Loading的缩写,数据提取、转换(业务处理)和加载。

    文件数据源:hive load命令

    关系DB数据源:sqoop抽取

     Sqoop import数据到HDFS/Hive/Hbase-->业务处理--->Sqoop export数据到关系数据库

    Sqoop import   从关系数据库抽取到HDFS

    Sqoop export    HDFS导回到关系数据

    二、Sqoop Linux下开发的步骤

    Mysql Jdbc驱动放到SQOOP_HOME/lib

    放lib的目录(eg:cd /opt/cloudera/parcels/CHD/lib/sqoop/lib,有时候master和slave节点都要存放此lib) 

     

    1、Sqoop 基本导入和导出讲解(command line方式)

    sqoop import --connect jdbc:mysql://master:3306/test   (此句是配置mysql路径,linux下一行未完结要加上反斜杠)

    --username root --password 123456 --table rpt_sale_daily (配置mysql的帐号和密码和table表名)

    --columns "dateid,huodong,pv,uv" (配置table抽取的字段)

    --where “dateid='2015-08-28'”  (表抽取查询条件)

    --target-dir sqoop/rpt_sale_daily (表抽取存放目标位置)

    -m 1 (sqoop抽取要启动的map数量,如果抽取量多的话可以适当调节map的数量)

     

    Sqoop import(抽取)需要注意:

       抽取到target-dir ,列用逗号分隔;

       抽取到hive表时,会根据hive表的列分隔符自动匹配。

     

     

    2.利用sqoop --options也可以进行sqoop抽取但是不支持往数据里面传参数

    sqoop --options-file ./test.opt  不支持往opt文件里传参数。(shell脚本方式)

    先写好执行文件test.opt

    在shell脚本里写好执行sqoop执行opt文件命令

    执行命令

    相比下command line的方式会比较好,因为可以利用shell脚本进行传参。不过还是过于麻烦

  • 相关阅读:
    iOS拓展---[转载]视频相关,一定要看呀
    iOS拓展---碰到奇葩需求
    iOS拓展---【转载】成熟的夜间模式解决方案
    2018年度总结
    linux常用命令
    自我认识
    SpringBoot入门最详细教程
    SVN分支的合并和同步
    java Data、String、Long三种日期类型之间的相互转换
    徐胜治:我要留下真正的东西
  • 原文地址:https://www.cnblogs.com/yaohaitao/p/5354414.html
Copyright © 2020-2023  润新知