SQOOP 导出Hive数据到MySQL

Sqoop导出Hive数据到Mysql时异常问题解决 3. 更换导数组件,不使用sqoop,采用datax/spark/flink等。4. 添加参数 columns 字段,将导出的每张表字段进行固定。因为sqoop不再维护,因此有两种方案。 阅读详情

基本知识:

Sqoop导出的基本用法:https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_syntax_4  的10. sqoop-export

内容摘要:

本文主要是对--update-mode参数的用法进行了验证。结论如下:

--update-mode模式有两种updateonly(默认)和allowinsert

updateonly:该模式用于更新Hive表与目标表中数据的不一致,即在不一致时,将Hive中的数据同步给目标表(如MySQL、Oracle等的目标表中),这种不一致是指,一条记录中的不一致,比如Hive表和MySQL中都有一个id=1的记录,但是其中一个字段的取值不同,则该模式会将这种差异抹除。对于“你有我无”的记录则“置之不理”。

allowinsert:该模式用于将Hive中有但目标表中无的记录同步到目标表中,但同时也会同步不一致的记录。可以这种模式可以包含updateony模式的操作,这也是为什么没有命名为insertonly的原因吧。

测试场景一:全量导出

1.        准备原始数据:

为简化处理,先在MySQL中创建原始数据表wht_test1,并添加测试数据,如下所示:

2.        将原始表中的数据导入到Hive中。

sqoop import --connectjdbc:mysql://localhost:3306/wht --username root --password cloudera --tablewht_test1 --fields-terminated-by ',' --hive-import --hive-table default.wht_test1 --hive-overwrite  -m 1

执行完该操作后,导入的数据在HDFS的/user/hive/warehouse/wht_test1目录下。

3.        创建导出表。

在MySQL中创建结构相同的表,用于导出数据:

CREATE TABLEwht_test2 LIKE wht_test1;

4.        从Hive(HDFS)导出数据。

sqoop export --connectjdbc:mysql://localhost:3306/wht --username root --password cloudera --tablewht_test2 --fields-terminated-by ',' --export-dir /user/hive/warehouse/wht_test1

执行完该操作后,MySQL的wht_test2表中插入了Hive中的数据,如下所示:



测试场景二:增量导出,在源数据中增加2条记录,查看不同模式导出结果

1.        编辑HDFS中的数据文件,添加两行新的记录,编辑后的文件内容如下所示:


Ø  updateonly模式:

sqoop export --connectjdbc:mysql://localhost:3306/wht --username root --password cloudera --tablewht_test2 --fields-terminated-by ',' --update-key c_id --export-dir /user/hive/warehouse/wht_test1

查看结果,可以看出Updateonly模式不能导出新增数据:


Ø  allowinsert模式:

sqoop export --connectjdbc:mysql://localhost:3306/wht --username root --password cloudera --tablewht_test2 --fields-terminated-by ',' --update-key c_id --update-mode allowinsert --export-dir /user/hive/warehouse/wht_test1

查看结果,新增数据被导出:



测试场景三:修改Hive表数据,修改age的值,并新增一行记录,然后重新导出,看目标表中的数据是否会被修改

1.        编辑HDFS中的数据文件,编辑后的文件内容如下所示:

sqoop export --connectjdbc:mysql://localhost:3306/wht --username root --password cloudera --tablewht_test2 --fields-terminated-by ',' --update-key c_id --update-mode updateonly  --export-dir/user/hive/warehouse/wht_test1

查看结果,Hive表中修改的数据被更新,但updateonly模式不会导出新插入的记录:


测试场景三:allowinsert模式(导出不同HDFS源文件中的新增数据)

Hive表可能有多个分区,在此新增一个目录,并保存结构相同的数据,使用allowinsert模式查看导出结果。

查看结果,新增数据被导出:

新增数据目录wht_test1_part,该目录下的数据文件如下所示:

执行导出命令:sqoop export --connect jdbc:mysql://localhost:3306/wht --usernameroot --password cloudera --table wht_test2 --fields-terminated-by ','  --update-key c_id --update-mode  allowinsert --export-dir/user/hive/warehouse/wht_test1_part

查看导出结果,可以看出新增数据被导出:



在linux虚拟机中用sqoop将hive中的数据导出到mysql时出现中文乱码问题! 阅读详情

相关推荐

利用sqoop将hive数据导入导出数据到mysql

利用sqoop将hive数据导入导出数据到mysql 运行环境  centos 5.6   hadoop  hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具 在使用过程中可能遇到的问题: sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中。sq

雲的博客 1203

使用sqoop从Hive导出数据到MySQL

2、启动mysql:support-files/mysql.server start。8、数据可视化(前端)需求:Tom选修了哪些课程,对应的每门课程有多少学分。(课程信息:课程号kch,学号xh,课程名称kcmc,学分xf)kcxx。其次:使用sqoop从hdfs上将分析好的数据导出到mysql中。5、分别编辑xsxxdata和kcxxdata里面数据。1、启动hadoop:start-all.sh。3、启动hive:hive。4、在hive中创建表。

qq_58476985的博客 5490

Sqoop数据导出导入命令 - MySQL

它提供了一组命令行接口,可以方便地将数据从关系型数据库导入到Hadoop集群中,或者将数据从Hadoop集群导出到关系型数据库中。执行上述命令后,Sqoop将从Hadoop集群中指定的目录中读取数据,并将其导入到MySQL数据库的指定表中。执行上述命令后,Sqoop将从MySQL数据库的指定表中读取数据,并将其导入到Hadoop集群的指定目录中。要将数据从Hadoop集群导出到MySQL数据库中,可以使用Sqoop的export命令。上述命令中的各个参数的含义与导出命令类似,只是导入命令使用了。

JfpBlockchain的博客 822

Sqoop将hive处理的数据导出到MySQL

sqoop将hive数据导出到mysql

weixin_62369128的博客 5606

ADS124S08配置避坑指南:从SPI时序到寄存器设置,手把手教你调通24位ADC

本文详细解析了ADS124S08 24位ADC的SPI时序配置、寄存器设置及外围电路设计中的关键细节,帮助工程师避开常见陷阱。从SPI通信模式选择到DRDY引脚读取优化,再到基准电压启动时间调整,提供了实战验证的解决方案,确保高精度数据采集的稳定性。

weixin_29192365的博客 286

基于Simulink的防空导弹六自由度弹道建模与仿真实战

本文详细介绍了基于Simulink的防空导弹六自由度弹道建模与仿真方法。通过分析导弹动力学原理、Simulink环境配置、气动力建模、推进与控制系统设计等关键环节,提供了一套完整的实战指南。文章特别强调了六自由度模型在防空导弹仿真中的重要性,并分享了常见问题排查与优化建议,为相关领域工程师提供实用参考。

apple5的专栏 868

sqoop从hive导出数据到mysql的三种方式

1、最常见方式 sqoop-export –connectjdbc:mysql://localhost:3306/wht –username root –password cloudera –tablewht_test2 –fields-terminated-by ‘\t’ –export-dir /user/hive/warehouse/wht_test1 此方式需要考虑到建hive表时的分隔符,如果没指定此方式行不通(个人没测通,如果有大佬测通了可以私信分享我,谢谢) 2、方式二 sqoop

weixin_42724318的博客 1万+

从零搭建ROS机械臂仿真环境:Ubuntu 20.04+Noetic下配置睿尔曼RM65的完整流程

本文详细介绍了在Ubuntu 20.04系统中,基于ROS Noetic搭建睿尔曼RM65机械臂的完整仿真环境。从环境准备、工作空间创建到MoveIt!配置与Gazebo仿真环境集成,提供了完整的流程和优化建议,帮助开发者高效实现机械臂仿真与调试。

v6b7n8m9q0的博客 933

Sqoop hive数据导出到mysql

Sqoop Sqoop是一个开源的工具,能用来hadoop(或者说是hive)和关系型数据库(mysql)之间转输,可将数据从hive中导出到mysql,也能从mysql导入到hive。 Sqoop安装 下载sqoop,这里用的是1.4.7版本 http://apache.mirrors.pair.com/sqoop/1.4.7/ 解压后,将sqoop安装地址添加到环境变量中 vim ~/.bas...

SW_LCC的博客 560

西门子840D新建项目

1、需要一个32位的WIN7或者XP系统,并且已经在系统中安装完成西门子840Dsl开发包和VS2008。(我采用的是XP系统虚拟机) 2、在开始->所有程序找到如下位置 3、在这个位置打开Visual Studio 4、文件->新建->项目 名称和位置都可以随意更改,点击确定。 5、在左侧选择第二个选项进入下面的界面 点击“Add Screen”按钮 可以修改“class name”然后点击“OK”返回上一个界面,再点击“Add Form” 可以修...

qq_36987047的博客 1861

光伏发电系统模拟及其发电预测开源python工具pvlib

本文介绍光伏发电系统模拟及其发电预测开源python工具pvlib,以及举例介绍获取辐照度方法、光伏发电预测思路。

肖永威的专栏 1万+

使用Sqoop从Hive导出数据到MySQL的问题总结

本文总结了使用Sqoop从Hive导出数据到MySQL过程中常见的报错及解决办法

weixin_47981216的博客 1052

FreeCAD MCP实战:用AI自然语言驱动CAD建模与自动化

在计算机辅助设计(CAD)领域,参数化建模和自动化脚本是提升设计效率的核心技术。其原理在于通过程序化指令控制三维模型的创建与修改,从而将设计意图转化为精确的几何实体。这种技术价值在于显著降低重复性操作成本,实现快速原型迭代和设计探索。在应用场景上,它尤其适用于需要频繁调整尺寸、生成系列化零件或执行规则化建模任务的工程与产品设计。本文聚焦的FreeCAD MCP项目,正是这一理念的先进实践。它通过集成Model Context Protocol(MCP),构建了一个连接Claude AI与FreeCAD的智能

weixin_26913055的博客 726

sqoop 导出hive数据到MySQL数据库当中

常用命令: 查看hive中表的结构:desc table_name; 查看hive中表的详细结构:desc formatted table_name; 我们想要将hive表中的数据导出到MySQL当中,MySQL中必须要有一个表来接收,并且该表的结构要和hive当中的表结构一致,不然会报错。 踩坑:hive当中的 string 字段对应 MySQL当中的 varchar 类型 直接上代码: sqoop export --connect "jdbc:mysql://192.1...

weixin_51872128的博客 4468

【WRF模拟】土地利用类型的确定:最大覆盖法/瓦片法

土地利用类型的确定:最大覆盖法/瓦片法

WW、forever的博客 1529

为分析表明卡诺电池技术(或热泵式储电技术)-是目前最佳的储能技术!!!-2021年

卡诺电池(Carnot Battery)是一种基于热力学循环的储能技术,其核心原理是通过热力循环将电能转化为热能存储,并在需要时将热能重新转换为电能输出。这种技术得名于热力学中的卡诺循环原理,由法国工程师卡诺于1824年提出。

qq_15963745的博客 656

sqoop hive导出mysql_使用 sqoop 将 hive 数据导出到 mysql (export)

EFdeMacBook-Pro:bin FengZhen$ sqoop export --connect jdbc:mysql://localhost:3306/sqooptest --username root --password 123qwe --table sqoop_test --export-dir /user/hive/external/sqoop_test --input-fiel...

weixin_31225063的博客 428

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

sqoop从hive导出到mysql数据缺失的解决方法

1,hive创建表的语句 CREATE TABLE `olympic_data`( `name` string, `age` int, `state` string, `year` string, `date` string, `project` string, `gold` int, `silver` int, `bronze` int, `total` ...

总分全班第一 3994

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Sqoop数据导出 第3关:Hive数据导出至MySQL中

Sqoop数据导出 第3关:Hive数据导出至MySQL中

qq_61604164的博客 2210

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Sqoop MySQL hive 数据库导入导出数据

1.导入(从mysql导入hive) 场景:从一个mysql数据库的表中导入数据到hive表中 sqoop import \ --connect "jdbc:mysql://ip:3306/mysql库名" \ (指定连接jdbc端口和数据库名称) --username "root" \ (数据库用户名) --password "root123" \ (密码 若不适用明文指定数据库密码 则可以用-P) --table "user" \ (指定数据库中的一张表) --targ

qq_41495340的博客 2449

sqoop export mysql_使用 sqoop 将 hive 数据导出到 mysql (export)

EFdeMacBook-Pro:bin FengZhen$ sqoop export --connect jdbc:mysql://localhost:3306/sqooptest --username root --password 123qwe --table sqoop_test --export-dir /user/hive/external/sqoop_test --input-fiel...

weixin_39866419的博客 277

一、sqoop从mysql导入导出数据到hdfs、hive、hbase

一、sqoop介绍 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 sqoop原理 将导入或导出命令翻译成mapreduce程序来实现。 在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。 sqoop安装 1、下

风子的博客 1013

Sqoop导出hive的parquet格式数据到mysql报错

1.1 在本地mysql建表 create table if not exists ads_nshop_flowpu_stat( uv bigint NOT NULL COMMENT '独立访客数', pv bigint NOT NULL COMMENT '页面访客数', pv_avg double NOT NULL COMMENT '人均页面访问数', bdp_day varchar(12) ...

C_time的博客 1843

[Sqoop]将Hive数据表导出到Mysql

利用sqoop将Hive数据表导出到Mysql

个人技术博客 7517

sqoop数据到mysql_Sqoop02:Sqoop导出Hive数据到MySQL

1.在Hive中建表:create table student(id int,number string,name string,sex string)row format delimited fields terminated by '\t';2.插入数据:insert into student(id,number,name,sex) values(1,'1234567...

weixin_26897585的博客 196
上一篇: Azkaban的编译与安装
下一篇: sqoop导出数据时如何选择update-key
汀桦坞
博客等级 码龄10年 176粉丝 251原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汀桦坞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值