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,则不会生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/76986.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8.5day06 框架基础--反射+注解

文章目录 反射获取类的各种信息获取类的字节码文件 注解元注解 复习redis两道算法题 摆烂了,不想学啦!!! 反射 反射主要用来做框架; 学习内容 获取类的各种信息 第一步 加载类,获取类的字节码文件 第二步 获取类的…

Matlab的信号频谱分析——FFT变换

Matlab的信号频谱分析——FFT变换 Matlab的信号频谱分析 FFT是离散傅立叶变换的快速算法,可以将一个时域信号变换到频域。 有些信号在时域上是很难看出什么特征的。但是如果变换到频域之后,就很容易看出特征了。 这就是很多信号分析采用FFT变换的原因…

巨人网络宣布与华为达成鸿蒙生态合作,2024年发布原始征途手游

巨人网络宣布与华为达成鸿蒙生态合作,官方公众号发布的消息确认。 巨人网络与华为宣布战略合作,旨在实现技术互补、成果共享和商业共赢。 巨人网络将利用基于HarmonyOS的核心特性,如“可分可合、自由流转、一次开发多端部署”,创…

如何在终端设置代理(设置jupyter notebook同理)

设置代理 在终端(我用的gitbash)下执行 set HTTP_PROXYhttp://<user>:<password><proxy server>:<proxy port> set HTTPS_PROXYhttp://<user>:<password><proxy server>:<proxy port>其中&#xff1a; user、password&#…

300个智商测试FLASH智商游戏ACCESS数据库

最近在找IQ测试方面的数据&#xff0c;网上大多只留传着33道题这种类型&#xff0c;其他的又因各种条件&#xff08;比如图片含水印等&#xff09;不能弄&#xff0c;这是从测智网下载的一些测试智商的游戏数据&#xff0c;游戏文件是FLASH的&#xff0c;扩展名是SWF。 数据包总…

android studio 实用插件推荐

本文字数&#xff1a;&#xff1a;2352字 预计阅读时间&#xff1a;8分钟 背景 现在做安卓开发的同学基本都是用 Android Studio 了吧&#xff0c;它具有强大的开放性&#xff0c;可以让用户根据自己的需求开发或使用一些插件辅助自己搬砖&#xff0c;当然开发插件我们可能还没…

[oeasy]python0079_控制序列_光标位置设置_ESC_逃逸字符_CSI

光标位置 回忆上次内容 上次我们研究的比较杂 类型转化进制转化捕获异常版本控制生成帮助文档变量的常用类型变量的生命周期控制 数据类型主要研究了两个 字符串 str 整型数字 int 字符串型 和 整型数字型变量 是可以相互转化的 加法运算逻辑 会根据操作变量的不同 而不同…

vue el-input 使用 回车键会刷新页面的问题

场景&#xff1a; vue项目中 在输入框输入字符并按下回车键搜索时&#xff0c;不会进行搜索&#xff0c; 而是会刷新页面 原因&#xff1a; 当form表单中只有一个input时&#xff0c;按下回车建会自动触发页面的提交功能&#xff0c; 产生刷新页面的行为 解决&#xff1a; 在…

idea 2023 新版ui中git的相关操作

前两个月换了新电脑&#xff0c;下了最新版的idea发现可以切换一套新的ui了 切换新ui肯定不太习惯&#xff0c;很多操作都得重新摸索一下 在这里记录几个git相关的操作 忽略我下面截图中当前项目是js的后端项目…… 切换ui 首先说一下怎么切换新旧版ui&#xff0c;我这里就…

机器学习和深度学习简述

一、人工智能、机器学习、深度学习的关系 近些年人工智能、机器学习和深度学习的概念十分火热&#xff0c;但很多从业者却很难说清它们之间的关系&#xff0c;外行人更是雾里看花。概括来说&#xff0c;人工智能、机器学习和深度学习覆盖的技术范畴是逐层递减的&#xff0c;三…

酷开系统 | 酷开科技,让数据变得更有价值!

身处信息时代&#xff0c;我们每个人时刻都在生成、传递和应用数据&#xff0c;数据已经成为了现代社会中宝贵的资源之一&#xff0c;而在人工智能领域&#xff0c;数据更是被称为人工智能的“燃料”。 而在AI的发展中&#xff0c;只有拥有高质量、多样性且充分代表性的数据集…

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock&#xff0c;看完可以吊打面试官 ReentrantLock是什么&#xff0c;有什么作用ReentrantLock的使用ReentrantLock源码解析ReentrantLock#lock方法FairSync#tryAcquire方法NonfairSync#tryAcquire方法 Reentrant…

微信小程序iconfont真机渲染失败

解决方法&#xff1a; 1.将下载的.woff文件在transfonter转为base64&#xff0c; 2.打开网站&#xff0c;导入文件&#xff0c;开启base64按钮&#xff0c;下载转换后的文件 3. 在下载解压后的文件夹中找到stylesheet.css&#xff0c;并复制其中的base64 4. 修改index.wxss文…

Jmeter +Maven+jenkins 接口性能全自动化测试

背景&#xff1a; 首先用jmeter录制或者书写性能测试的脚本&#xff0c;用maven添加相关依赖&#xff0c;把性能测试的代码提交到github&#xff0c;在jenkins配置git下载性能测试的代码&#xff0c;配置运行脚本和测试报告&#xff0c;配置运行失败自动发邮件通知&#xff0c…

高项V4.高级PM.项目集set+项目组合portfolio+组织级OPM+量化项目管理+实践模型

PMI &#xff0c; ITSS 、CMMI 和PRINCE2 等为各类信息系统项目管理提供了最佳实践&#xff0c;井提供了对组织的项目管理能力进行持续改进和评估的方法。 第一部分 项目集--《项目集管理标准>> (第4 版) ---实现项目11>2的更大效益 由项目管理协会(PMI) 出版的《…

快速制作美容行业预约小程序

随着科技的不断进步&#xff0c;移动互联网的快速发展&#xff0c;小程序成为了很多行业迅速发展的利器。对于美容行业来说&#xff0c;一款美容预约小程序不仅可以方便用户进行预约&#xff0c;还可以提升美容店铺的服务质量和管理效率。下面&#xff0c;我们来介绍一下如何快…

C高级第三讲

1、思维导图 2、输入一个文件名&#xff0c;判断是否为shell脚本文件&#xff0c;如果是脚本文件&#xff0c;判断是否有可执行权限&#xff0c;如果有可执行权限&#xff0c;运行文件&#xff0c;如果没有可执行权限&#xff0c;给文件添加可执行权限。 #!/bin/bash read -p …

vue 老项目 npm install 报错Python,c++等相关错误

​​​ 老项目npm install 下载依赖包报错 解决方法&#xff1a; //下载python 1、 npm install --global --production windows-build-tools//配置环境 &#xff1a; 也可暂时不用配置,能用就不用配置&#xff08;npm config set python "D:\Python27\python.exe&q…

康冠医疗2021笔试题

笔试时间:2020.09.24。 岗位:嵌入式软件工程师。 题型:13道题,40分钟。 6道填空,2道简答,5道编程,时间紧任务重。 1、填空 4、考察extern关键字。 6、const可以用来代替define ,define 只是简单的代替,但是const还会进行类型检查。 怎么避免头文件重复包含: #…

pandas read excel 更改string列为时间类型

设想我们有如下一个excel文件 我们都知道上面那个时间列其实是string类型&#xff0c;因此在用pandas做时间校验的时候会不通过&#xff0c;我们可以在read_excel的时候&#xff0c;指定这一列做转换 import pandas as pd from datetime import datetime, timedelta import n…