sqoop

一、bg

可以在关系型数据库和hdfs、hive、hbase之间导数

导入:从RDBMS到hdfs、hive、hbase

导出:相反

sqoop1 和sqoop2 (1.99.x)不兼容,sqoop2 并没有生产的稳定版本,

Sqoop1 import原理(导入)

从传统数据库获取元数据信息(schema、table、field、field type),把导入功能转换为只有Map的Mapreduce作业,在Mapreduce中有很多map,每个map读取一片数据,进而并行的完成数据的拷贝

Sqoop1 export原理(导出):

获取导出表的schema、metahdfs信息,和Hadoop中的字段match;多个map only作业同时进行,完成hdfs中数据导出到关系型数据库

主要是对mapreduce自带的inputformat和outputformat进行了定制

二、下安验配

依赖java和hadoop

三、sqoop使用

1 常用命令

列出数据库的databases

2 导入

--delete-target-dir :导入到hdfs前,是否删除目录(否则无法覆盖),在生产上不用,手动删

全部导入

查询导入

https://blog.csdn.net/u011250186/article/details/119280478

CONDITIONS:query设置sql来指定查询条件,并且还需在sql中添加CONDITIONS,来实现并行运行mr的功能

  • $CONDITIONS是个linux变量,用来给不同的map指定查询范围
  • $CONDITIONS,在查询导入的时候必须加,用来保证两边的数据顺序一致。即使只有一个map
  • 不加会报错
  • 双引号包括的查询sql中,$CONDITIONS要转义
  • 如果是多个m,需使用--split-by来区分数据,$CONDITIONS替换查询范围,

列导入

关键字导入

通过表和列的正则来选定导入的列

3 并行度

如果-m>1,会自动识别主键并按主键拆分,如果主键不均匀,建议执行拆分列

4 note

'\N':单引号' '原样显示里边的内容=>\N ,sqoop的底层是java代码,java中\会转义为\,即最后会显示为\N。

Hive中的Null在底层是以"\N"来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用--input-null-string和--input-null-non-string两个参数。导入数据时采用--null-string和--null-non-string。

四、面试题

sqoop查询导入时,如果设置了并行度,那如何保证写入到hive的数据跟源表的数据顺序是一样的。$CONDITIONS是用来干嘛的?

sqoop并行读取时,需要指定每个mapper读取的数据范围,保证写入到目的地时有序,$CONDITIONS是个linux变量,用来根据分区列来给每个mapper拼接sql。

默认用主键,如果主键分布不均匀,建议用 --split-by指定分区列。

如果没有主键也没有--split-by,会报错。除非--num-mappers 1 or --autoreset-to-one-mapper 。--autoreset-to-one-mapper用来配合import-all-tables 工具一起使用,以自动处理架构中没有主键的表。

--split-limit参数有什么用

用来限制每个mapper读取数据的大小。如果参数大小 大于 mapper数量决定的数据大小,那会增加mapper数量。

如果设置为0 or negative,则不会生效。

相关推荐
Nefu_lyh1 天前
【Hive】七、Hive 函数:聚合 / 统计 / 分位数 / 集合 / 高级分组
数据仓库·hive·hadoop
阿 才1 天前
跟文件系统(busybox)的构建
大数据·hadoop·分布式
KANGBboy1 天前
hive UDF函数
数据仓库·hive·hadoop
暴躁小师兄数据学院2 天前
【AI大数据工程师特训笔记】第15讲:大数据环境安装
大数据·hadoop·flink·spark
王小王-1232 天前
基于 Hadoop + Flask 的电动汽车数据分析与可视化系统设计与实现
hadoop·数据分析·flask·电动汽车·新能源汽车数据分析·新能源汽车销量分析·新能源汽车销售分析
王小王-1232 天前
基于机器学习与Hadoop的心脏病数据分析与可视化设计与实现
hadoop·机器学习·数据分析·心脏病预测
知识分享小能手2 天前
Hadoop学习教程,从入门到精通, Hadoop 3.x 高可用集群 — 知识点详解(6)
大数据·hadoop·学习
王小王-1233 天前
基于商品评价的评论情感分析与可视化系统
hive·情感分析·商品评价分析·主题分析·商品评论分析
知识分享小能手3 天前
Hadoop学习教程,从入门到精通, ZooKeeper 分布式协调服务 — 全面知识点与案例代码(5)
hadoop·分布式·zookeeper
Nefu_lyh3 天前
【Hive】 八、Hive 计算引擎:MapReduce / Tez / Spark 对比与选型
hive·spark·mapreduce