Sqoop 学习

参考视频

        大数据Sqoop教程丨从零开始讲解大数据业务及数据采集和迁移需求_哔哩哔哩_bilibili

介绍

Sqoop是Hadoop生态体系和RDBMS(关系型数据库)体系之间传送数据的一种工具

        Hadop生态系统:HDFS,Hbase,Hive等

        RDBMS包括:Mysql,Oracle,DB2等

        Import:数据导入, RDBMS(DBinputFormat) -> Hadoop(TestoutputFormat)

        export:  数据导出,Hadoop(DBoutputFormat) -> RDBMS(TestInputFormat)

机制

        Sqoop工作机制是将导入或导出命令翻译成MapReduce程序来实现,在翻译出的MapReduce中主要对ImportFormat和OutFormat进行定制

安装部署

前置条件:

安装java,hadoop

配置文件(基于sqoop1.4.6):

上传,解压,修改配置

cd $SQOOP_HOME/conf
mv sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh

export HADOOP_CONFIG_HOME=/export/../hadoop-2.7.5
export HADOOP_MAPRED_HOME=/export/../hadoop-2.7.5
export HIVE_HOME=/export/../hive

加入mysql的jdbc驱动包

cp /hive/lib/mysql-connector-java-5.1.32.jar $SQOOP_HOME/lib/

验证

bin/sqoop list-databases \
--connect jdbc:mysql://localhost:3306/ \
--username root --password 123456

\: 一行过长,用\表示一行还没有完,等待

sqoop导入

bin/sqoop import \
--connect jdbc:mysql://ip:port/dbName \
--username roor \
--password 123456\
--delete-target-dir \ (如果target-dir 的路径存在,提前删除)
--target-dir /sqoopresult \ (可以用来存放导出数据存放到HDFS的目录)
--table myTableName \
--m 1 \ (可以理解成maptask ,并行度,表有主键根据主键分,没有主键需要指定字段)
--split-by id \ (根据什么字段切割,最好是数字字段)
--fields-terminated-by '\t' (指定分隔符,还可以,等,默认,)

条件导入
--where "age>12" (条件查询导入,可改成每天时间,则是每日导出)
--query 'select id,name,age from myTableName where age>18 and $CONDITIONS' (1 不加--table,2 必须有where条件, 3必须加上$CONDITIONS, 4 sql必须是单引号)

增量导入
--check-column(col)  (指定列,一般是主键或者时间戳,自增长不重复)
--incremental(mode)  (append:追加 lastmodified:最后的修改时间)
--last-value(value)  (指定上次导入后判断的最大值,也可以自己指定某一个值)
--merge-key (col)(append模式下可以合并文件,不会每次导入都在hdfs里新增一个文件.除了追加合并外,如果之前的数据有修改也可以进行修改操作,且数据不会重复)
eg:
--check-column id
--incremental append
--last-value 1205 
--merge-key id (追加,id>=1205的数据)
--check-column create_time
--incremental lastmodified
--last-value '2020-02-01 15:00:00' (追加,大于整个时间的数据)

sqoop导出

目标表必须存在数据库当中

导出的三种模式

1 默认,执行insert语句,插入到表里

2 更新模式,sqoop将生成UPDATE置换数据库中现有记录的语句

3 调用模式,sqoop将为每条记录场景一个存储过程调用

待补充

参考文档:

Sqoop简介以及使用-CSDN博客

相关推荐

  1. Sqoop 学习

    2024-03-11 17:38:03       49 阅读
  2. hadoop学习---sqoop学习记录

    2024-03-11 17:38:03       38 阅读
  3. Sqoop教程】Sqoop学习教程以相关资料

    2024-03-11 17:38:03       42 阅读
  4. Apache Sqoop

    2024-03-11 17:38:03       23 阅读
  5. sqoop运行报错

    2024-03-11 17:38:03       60 阅读
  6. sqoop事务如何实现

    2024-03-11 17:38:03       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 17:38:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 17:38:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 17:38:03       82 阅读
  4. Python语言-面向对象

    2024-03-11 17:38:03       91 阅读

热门阅读

  1. jQuery改变元素的方法

    2024-03-11 17:38:03       44 阅读
  2. Linux(CentOS7.5):通过docker安装mysql8.0

    2024-03-11 17:38:03       41 阅读
  3. cudnn下载国内满速下载地址长期有效更新

    2024-03-11 17:38:03       35 阅读
  4. Redis info - 内存

    2024-03-11 17:38:03       40 阅读
  5. Apache拦截不安全漏洞

    2024-03-11 17:38:03       41 阅读
  6. python基础练习 序列求和

    2024-03-11 17:38:03       40 阅读
  7. 阿尔巴尼亚借助ChatGPT加快欧盟入会进程

    2024-03-11 17:38:03       45 阅读
  8. 3.最长连续序列

    2024-03-11 17:38:03       33 阅读
  9. _note_01

    2024-03-11 17:38:03       37 阅读
  10. TypeScript 5.4 正式发布

    2024-03-11 17:38:03       37 阅读