Sqoop导入导出总结

Sqoop导入导出Hive示例 Sqoop是连接传统关系型数据库和Hadoop的桥梁。把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS、HBase 和 Hive) 中;把数据从 Hadoop 系统里抽取并导出到关系型数据库。利用MapReduce,批处理方式进行数据传输。 本篇文章主要是根据Sqoop导入导出到Hive的实际示例,对Sqoop中的import与export进行简要介绍: ===========... 阅读详情

Sqoop命令

全量导入

bin/sqoop import \ (输入命令)
--connect jdbc:mysql://hadoop102:3306/testdb \ (指定连接jdbc端口和数据库名称)
--username root \ (数据库用户名)
--password 000000 \ (密码 若不适用明文指定数据库密码 则可以用-P)
--table user \ (指定数据库中的一张表)
--target-dir /input/import \ (指定数据导入到HDFS上的目录)
--delete-target-dir \ //如果目标目录已存在,则先删除
--num-mappers 1 \ (指定使用导入数据的map个数,mapreduce(V1)中的方式可以用-m 1 代替(过时))
--fields-terminated-by "," (目标文件的分隔符, 默认情况下,导入HDFS的每行数据分隔符是逗号)

部分字段导入

bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/sqoop \
--username root \
--password 000000 \
--table user \
--columns "id,account" \
--target-dir /sqoop/query1 \
-m 1 \
--delete-target-dir \
--fields-terminated-by "\t"

查询导入

$sqoop import \
--connect jdbc:mysql://hadoop102:3306/gmall \
--username root \
--password 000000 \
--target-dir /origin_data/gmall/db/$1/$do_date \
--delete-target-dir \
--query "$2 and  \$CONDITIONS" \ (查询语句)
--num-mappers 1 \
--fields-terminated-by '\t' \
--compress \
--compression-codec lzop \
--null-string '\\N' \
--null-non-string '\\N'

增量导入

–check-column (col)

用来指定一些列,这些列在增量导入时用来检查这些数据是否作为增量数据进行导入,和关系型数据库中的自增字段及时间戳类似。

注意:这些被指定的列的类型不能使任意字符类型,如char、varchar等类型都是不可以的,同时-- check-column可以去指定多个列。

–incremental (mode)

append:追加,比如对大于last-value指定的值之后的记录进行追加导入。

lastmodified:最后的修改时间,追加last-value指定的日期之后的记录

–last-value (value) :指定自从上次导入后列的最大值(大于该指定的值),也可以自己设定某一值

Append 模式

注意:
1.--append and --delete-target-dir can not be used together.
2.--check-column 不是使用CHAR/NCHAR/VARCHAR/VARNCHAR/ LONGVARCHAR/LONGNVARCHAR这样的数据类型,后面跟 唯一 不重复的列 类似主键
3.--incremental 支持两种模式
append 告诉sqoop是整型数据自增长的方式来区分从哪里开始增量导入
lastmodified 告诉sqoop是最后一次修改文件的时间戳来区分从哪里开始增量导入
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/test \
--username root \
--password 000000 \
--table sqoop_test \
--num-mappers 1 \
--target-dir /user/bigdata/input \
--fields-terminated-by "," \
--check-column id \ 
--incremental append \ 
--last-value  1207 \

测试

在mysql数据库中创建表,插入数据:

CREATE TABLE  sqoop_test(id int(11),
     name VARCHAR(25),
     deg VARCHAR(25),
     salary FLOAT ,
		 dept VARCHAR(25)
     );
insert into `test`.`sqoop_test` (`id`, `name`, `deg`, `salary`, `dept`) values ('1208', 'allen', 'admin', '30000', 'tp');

insert into `test`.`sqoop_test` (`id`, `name`, `deg`, `salary`, `dept`) values ('1209', 'woon', 'admin', '40000', 'tp');

LastModified模式

lastModified:append
bin/sqoop import \

--connect jdbc:mysql://node-1:3306/userdb \

--username root \

--password hadoop \

--table customertest \

--target-dir /lastmodifiedresult \

--check-column last_mod \

--incremental lastmodified \

--last-value "2019-05-28 18:42:06" \

--m 1 \

--append

lastmodified模式去处理增量时,会将大于等于last-value值的数据当做增量插入

Lastmodified 模式:merge-by

使用lastmodified模式进行增量处理要指定增量数据是以****append*模式(附加)还是*merge-key****(合并)模式添加

bin/sqoop import \

--connect jdbc:mysql://node-1:3306/userdb \

--username root \

--password hadoop \

--table customertest \

--target-dir /lastmodifiedresult \

--check-column last_mod \

--incremental lastmodified \

--last-value "2019-05-28 18:42:06" \

--m 1 \

--merge-key id

导出

updateonly模式

– update-key,更新标识,即根据某个字段进行更新,例如id,可以指定多个更新标识的字段,多个字段之间用逗号分隔。

– updatemod,指定updateonly(默认模式),仅仅更新已存在的数据记录,不会插入新纪录。

代码:

bin/sqoop export \

--connect jdbc:mysql://hadoop:3306/userdb \

--username root \

--password 000000 \

--table updateonly \

--export-dir /updateonly_2/ \

--update-key id \

--update-mode updateonly

allowInsert模式

– update-key,更新标识,即根据某个字段进行更新,例如id,可以指定多个更新标识的字段,多个字段之间用逗号分隔。

– updatemod,指定allowinsert,更新已存在的数据记录,同时插入新纪录。实质上是一个insert & update的操作。

bin/sqoop export \

--connect jdbc:mysql://Hadoop102:3306/userdb \

--username root --password 000000 \

--table allowinsert \

--export-dir /allowinsert_2/ \

--update-key id \

--update-mode allowinsert

Sqoop介绍、安装部署及MySql与HDFS数据之间的导入导出 本博客的学习目标:了解Sqoop是什么,能做什么以及架构能够进行Sqoop环境部署      MySql<=>HDFS数据的导入导出准备工作:Hadoop伪分布式集群环境:https://blog.youkuaiyun.com/qq_32297447/article/details/79734894CentOS7下安装配置Mysql:https://blog.youkuaiyun.com/qq_3229744... 阅读详情

相关推荐

sqoop与hbase导入导出数据

环境:sqoop1.4.6+hadoop2.6+hbase1.1+mysql5.7 说明: 1.文中的导入导出的表结构借鉴了网上的某篇博客 2.mysql导入hbase可以直接通过sqoop进行 3.hbase导出到mysql无法直接进行,需要经过hive的中间作用来完成 hbase→hive外部表→hive内部表→sqoop导出→mysql一、Sqoop导入hbasea) Mysql创建

亡羊补牢 9993

sqoop导入与导出参数说明

关于sqoop在hdfs与mysql之间导入导出参数的说明

weixin_42430074的博客 5481

Sqoop使用总结

Sqoop基本使用 一、Sqoop 基本命令 二、Sqoop 与 MySQL 三、Sqoop 与 HDFS     3.1 MySQL数据导入到HDFS     3.2 HDFS数据导出到MySQL 四、Sqoop 与 Hive     4.1 MySQL数据导入到Hive     4.2 Hive 导出数据到MySQL 五、Sqoop 与 HBa

石榴姐yyds 897

sqoop详细导入导出数据步骤

前面已经给大家讲过sqoop的安装,如果还没有安装的可以再去看看详细安装流程: sqoop详细安装与环境配置 sqoop的作用前面也说过主要用于做数据迁移,它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库的互相导入。 Sqoop功能 将关系型数据库数据导入HDFS,解决HDFS的数据来源问题,使数据能够方便地进入HDFS。 支持HDFS数据导出到关系型数据库,Hadoop计算出的数据可以方便地写回到数据库中。 支持关系型数据库直接将

zp17834994071的博客 8331

Sqoop导入导出原理与代码实例讲解

第2章 Sqoop基础 2.1 Sqoop简介 Sqoop是一种强大的工具,用于在Hadoop生态系统(如HDFS、Hive和HBase)和结构化数据存储(如关系数据库和NoSQL数据库)之间进行高效的数据传输。它是Apache Software Foundation的一个开源项目,与Had

AI天才研究院 640

C++利用spdlog生成日志

C++利用spdlog生成日志下载编译spdlog配置并使用 环境:Win10-x64+VS2015 spdlog是一个快速的C++日志库,能够兼容C++11,具备快速、无需依赖第三方库、支持多线程、多平台的优良特性! 下载编译spdlog 1.第一步,下载spdlog 下载spdlog,下载地址:https://github.com/gabime/spdlog#header-only-version,从Github上下载zip压缩包。下载完成后会获取一个名为spdlog-1.x.zip的压缩包 2.第二步

weixin_42975610的博客 3222

sqoop命令大全和踩坑大全

目录Import(Mysql到Hive/hdfs)参数解释------------dbms相关--------------connect✳✳--table --where--columns--query✳--m--split-by id✳✳------------hdfs相关--------------as-textfile--compress--compression-codec gzip--null-non-string✳✳--null-string✳✳--fields-terminated-by✳--

javaMylife的博客 2765

QGroundControl高级配置与自定义功能实战指南

本文深入探讨了QGroundControl(QGC)的高级配置与自定义功能,为无人机开发者、系统集成商和高级用户提供实战指南。内容涵盖从品牌界面定制、自定义MAVLink消息处理,到插件开发与自动化部署的全流程,旨在帮助用户解锁QGC的隐藏潜力,打造专属的行业解决方案。

weixin_29234509的博客 239

跨库数据迁移利器 —— Sqoop

一、Sqoop 基本命令 1. 查看所有命令 # sqoop help 2. 查看某条命令的具体使用方法 # sqoop help 命令名 二、Sqoop 与 MySQL 1. 查询MySQL所有数据库 通常用于 Sqoop 与 MySQL 连通测试: sqoop list-databases \ --connect jdbc:mysql://hadoop001:3306/ \ ...

weixin_30362083的博客 626

强化学习入门8—深入理解DDPG

本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。

小菜羊的博客 4314

基于MacOS本地部署OpenClaw+Ollama技术要点

本文基于MacOS系统下本地部署OpenClaw+Ollama的实操经验,梳理部署全流程中的核心技术要点、环境配置规范、故障排查方法及落地优化方案,聚焦“本地AI模型联动OpenClaw技能调度”的核心需求,为同类本地部署场景提供可复用的技术参考,规避常见部署风险,确保系统稳定运行。

在科技赋能新时代,共同探索基础理论和宇宙未知。 5164

Sqoop增量导入导出总结

Sqoop做为关系型数据库RDBMS和大数据平台(HDFS,Hive,Hbase等)导入导出工具,如果不熟悉其参数作用,使用起来各种问题,本文作为博主对Sqoop的实践作出一定的总结,如有错误,仅供参考。 Sqoop Job Sqoop job 的是给使用者提供一个封装sqoop job的功能,其作用是可以自动更新job 的meta信息,让增量导入时指定的last-value自动被更新记录,不用额外的使用其他手段记录信息。 Sqoop job操作: 创建job sqoop job --c.

Realoyou的博客 8万+

【3D无序抓取】--终极技术详解

3D无序抓取技术详解:从感知到执行的全流程技术方案 本文系统梳理了3D无序抓取(Bin Picking)的核心技术栈,涵盖3D感知、抓取规划和机器人执行三大环节。在3D感知层,详细介绍了点云采集与预处理方法(PCL/Open3D)、物体分割(PointNet++)和位姿估计(PVN3D/DenseFusion)等关键技术。抓取规划部分重点解析了抓取生成(GraspNet)、质量评估(Dex-Net)和动态避障(MoveIt!)算法。机器人执行环节则涉及路径规划、力控技术和末端执行器选型。同时提供了完整的工具

weixin_45590420的博客 597

Sqoop导入导出过程原理

一、导入过程        Sqoop是通过MapReduce作业进行导入工作,在作业中,会从表中读取一行行记录,然后将其写入HDFS        在开始导入之前,Sqoop会通过JDBC来获得所需要的数据库元数据,例如,导入表的列名,数据类型等(第一步);接着这些数据库的数据类型(varchar,number等)会被映射成java类型(String,int等),根据这些信息,Sqoop会生...

qq_43193797的博客 6105

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

基于sqoop的导入导出操作

[Author]: kwu -- 基于sqoop的导入导出操作

841

基于Simulink的电动汽车电池管理系统热管理优化仿真

电动汽车电池管理系统(Battery Management System, BMS)中的热管理是确保电池性能、安全性和寿命的关键环节。温度过高或过低都会显著影响电池的工作效率和寿命,因此需要对电池组进行精确的热管理。基于MATLAB/Simulink的仿真平台可以用于建模和优化电池热管理系统,包括热分布预测、冷却策略设计以及热平衡控制等。本项目旨在构建一个完整的电动汽车电池热管理优化仿真模型,并通过仿真验证系统的性能。

xiaoheshang_123的博客 462

sqoop生成秘钥串hadoop导入导出

sqoop进行import和export时 需要验证导入数据库的用户和密码,一般密码都是要求数字字母和符号相结合,–password的参数可能不一定能识该密码信息。也有安全部分考虑,sqoop脚本中不能有明文的密码,为此可选择在HDFS上生成秘钥串已密钥库存储模式进行数据的导入和导出。避坑:创建的文件上级目录 hadoop执行用户要有权限才可以,否则会抛异常。

1086

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Sqoop安装与Sqoop导入导出

一、Sqoop介绍:数据迁移工具 Sqoop用于在Hadoop(HDFS)和关系型数据库之间,进行数据的迁移。 Sqoop的导入:将关系型数据库中的数据导入到HDFS中 Sqoop的导出:将HDFS的数据导出到关系型数据中 本质:将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制 二、S...

既明的博客 290

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

db2 如何导出insert语句_sqoop导入导出总结

一、sqoop导入导出问题1、sqoop导出update还是insert的问题--update-mode:updateonly只更新,无法插入新数据allowinsert允许新增--update-key:允许更新的情况下,指定哪些字段匹配视为同一条数据,进行更新而不增加,多个字段用逗号分隔。2、Hive中的Null在底层是以“N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端...

weixin_39765695的博客 370

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Sqoop 导入导出参数总结

以上参数覆盖了Sqoop最常用的功能选项,实际使用时可以根据具体需求组合这些参数来实现复杂的数据迁移任务。

ITHomeZSL的博客 555

sqoop详解-导入导出

从mysql 导入到 hadoop 文件: http://ftp.wayne.edu/apache/sqoop/ -- sqoop下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/ 大家下的时候注意自己的版本!!(注意不要下sqoop2,不是给我们这类需求使用的。) (一定一定要选择 bin__hadoop 版本,否则也可能报错java.lang.NoClassDefFoundError: org/apache/avro/.

上帝之手&传奇 - MartinLee 1830

Sqoop的安装和配置,Sqoop的数据导入导出,MySQL对hdfs数据的操作

sqoop的安装基础是hive和mysql,没有安装好的同学建议去看一看博主的这一篇文章好的那么接下来我们开始表演,由于hive是当时在hadoop03上安装的,所以本次的操作,只要没有特别提出就是在hadoop03执行的。接下来给大家准备好了压缩包,当然也可以自己去官网下载。通过网盘分享的文件:sqoop.zip链接: https://pan.baidu.com/s/1sJInaXbUgUS8alHt_gwqGQ 提取码: d58v--来自百度网盘超级会员v4的分享。

qianwanfuweng的博客 1520

sqoop导入导出工具的使用以及通过java代码连接linux,远程执行shell命令

1、sqoop是apache开源提供的一个数据导入导出的工具,从关系型数据库导入到hdfs,或者从hdfs导出到关系型数据库等等 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统; 导出数据:从Hadoop的文件系统中导出数据到关系数据库mysql等 **原理:**通过MR的inputformat和outputformat来实现数据的输入与输出,底层执行的全部都是MR的任务,只不过这个mr只有map阶段,没有reduce阶段 说白了只是对数据进行抽取,从

Carina_____的博客 597

sqoop的导入导出

现在要将qfdb中的表抽取到hive的aa库里面注意:如果是其他的关系型数据库抽取到hive数据库中,不需要新建表格,hive会自动的创建表格,oracle表名要大写 出现这个就代表执行成功了{{--提示报错如果出现这个错--Output directory hdfs://localhost:9000/user/root/emp already exists 需要把这个文件删除:hdfs dfs -rm -r /user/root/emp删除之后再次执行sqoop指令:或者在导入的时候加上删除目录的语句

1111 457
上一篇: Git的基本使用
下一篇: txt文件导入kafka
keepHungery
博客等级 码龄8年 115粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值