sqoop导数据遇到的部分问题

WSL Ubuntu20 通过1Panel配置SSH服务的完整避坑指南 本文详细介绍了在WSL Ubuntu20环境下通过1Panel配置SSH服务的完整指南,包括环境准备、SSH服务安装与基础配置、1Panel中的SSH管理技巧以及连接测试与故障排查。特别针对WSL特性提供了避坑建议,如IP动态变化处理、SSH服务初始化配置等关键步骤,帮助用户高效搭建稳定的SSH服务环境。 阅读详情
AI摘要

本文探讨了在从Oracle数据库向Hive进行数据迁移时遇到的问题及解决方案,特别是针对CLOB字段的处理方法,以及如何确保数据一致性和避免导入过程中的错误。

在导入hive的时候,如果数据库中有blob或者text字段,会报错,解决方案:
clob:在将数据由Oracle数据库导入到Hive时,发现带有clob字段的表的数据会错乱,出现一些字段全为NULL的空行。
由于在项目中CLOB字段没有实际的分析用途,因此考虑将CLOB字段去掉。
同时,为了防止CLOB字段产生一些问题,因此将HIVE中CLOB字段禁用,禁用的方式如下:
[Hadoop@master sqoop-1.4.5]$ cd S Q O O P H O M E / c o n f [ h a d o o p @ m a s t e r c o n f ] SQOOP_HOME/conf [hadoop@master conf] SQOOPH​OME/conf[hadoop@masterconf] vi oraoop-site.xml
将以下属性的注释去掉,并且将value改为true

oraoop.import.omit.lobs.and.long
true
If true, OraOop will omit BLOB, CLOB, NCLOB and LONG columns during an Import.


有些表中虽然有clob字段,但是不能排除掉,因为其他字段使我们所需要,因此在导入的时候采用指定–columns的方式来进行导入
sqoop import --hive-import --hive-database test --create-hive-table --connect jdbc --username user–password user–bindir //scratch --outdir /Java --table aaa --columns “ID,NAME” -m 1 --null-string ‘\N’ --null-non-string ‘\N’
Sqoop导入导出Null存储一致性问题
Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用–input-null-string和–input-null-non-string两个参数。导入数据时采用–null-string和–null-non-string。
–input-null-non-string
在生成的java文件中,可以将null字符串设为想要设定的值(比如空字符串’’)
–input-null-string
同上,设定时,最好与上面的属性一起设置,且设置同样的值(比如空字符串等等)。
Sqoop数据导出一致性问题
1)场景1:如Sqoop在导出到Mysql时,使用4个Map任务,过程中有2个任务失败,那此时MySQL中存储了另外两个Map任务导入的数据,此时老板正好看到了这个报表数据。而开发工程师发现任务失败后,会调试问题并最终将全部数据正确的导入MySQL,那后面老板再次看报表数据,发现本次看到的数据与之前的不一致,这在生产环境是不允许的。
官网:http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html
Since Sqoop breaks down export process into multiple transactions, it is possible that a failed export job may result in partial data being committed to the database. This can further lead to subsequent jobs failing due to insert collisions in some cases, or lead to duplicated data in others. You can overcome this problem by specifying a staging table via the --staging-table option which acts as an auxiliary table that is used to stage exported data. The staged data is finally moved to the destination table in a single transaction.
由于Sqoop将导出过程分解为多个事务,因此失败的导出作业可能会导致将部分数据提交到数据库。 这可能进一步导致后续作业由于某些情况下的插入冲突而失败,或导致其他作业中的重复数据。 您可以通过–staging-table选项指定登台表来解决此问题,该选项充当用于暂存导出数据的辅助表。 分阶段数据最终在单个事务中移动到目标表。
–staging-table方式
sqoop export --connect jdbc:mysql://192.168.137.10:3306/user_behavior --username root --password 123456 --table app_cource_study_report --columns watch_video_cnt,complete_video_cnt,dt --fields-terminated-by “\t” --export-dir “/user/hive/warehouse/tmp.db/app_cource_study_analysis_${day}” --staging-table app_cource_study_report_tmp --clear-staging-table --input-null-string ‘\N’
2)场景2:设置map数量为1个(不推荐,面试官想要的答案不只这个)
多个Map任务时,采用–staging-table方式,仍然可以解决数据一致性问题。
生成大于1.5G的数据,导入
数据量非常大,可能会导致一个错误
错误:
exception “GC Overhead limit exceeded
原因:
Why Sqoop Import throws this exception?
The answer is – During the process, RDBMS database (NOT SQOOP) fetches all the rows at one shot and tries to load everything into memory. This causes memory spill out and throws error. To overcome this you need to tell RDBMS database to return the data in batches. The following parameters “?dontTrackOpenResources=true&defaultFetchSize=10000&useCursorFetch=true” following the jdbc connection string tells database to fetch 10000 rows per batch.

解决方案:
1、指定mappers的数量(数量最好不要超过节点的个数)
sqoop job --exec gp1813_user – --num-mappers 8;

2、调整jvm的内存,缺点:
-Dmapreduce.map.memory.mb=6000
-Dmapreduce.map.java.opts=-Xmx1600m
-Dmapreduce.task.io.sort.mb=4800 \

3、设置mysql的读取数据的方式,不要一次性将所有数据都fetch到内存
?dontTrackOpenResources=true&defaultFetchSize=10000&useCursorFetch=true

熵权法+TOPSIS完整教学:用Python评估大学科研实力(含雷达图绘制技巧) 本文提供了一套完整的熵权法与TOPSIS综合评价方法在Python中的实现教程,以高校科研实力评估为例,详细讲解了从数据预处理、客观权重计算、综合排序到结果可视化的全流程。重点介绍了如何利用Python进行数据清洗与转换,通过熵权法自动确定指标权重,并结合TOPSIS模型计算各院校与理想解的相对接近度进行排名。教程还包含了使用Matplotlib绘制专业雷达图的技巧,帮助读者直观呈现多维数据的对比分析结果,适用于各类多指标决策与绩效评估场景。 阅读详情

相关推荐

别再手动上传了!用宝塔面板的‘Let‘s Encrypt’免费SSL证书,3分钟自动续期

本文详细介绍了如何利用宝塔面板的‘Let‘s Encrypt’功能实现SSL证书的自动申请和续期,3分钟完成配置即可永久免费使用。通过对比不同SSL证书方案,突出Let's Encrypt的免费、自动续期和高安全性优势,特别适合个人博客和中小企业官网。

weixin_30415113的博客 150

oracle sqoop 导出_Sqoop将Hive字符串导出到Oracle CLOB

我想导出STRING来自Hive的数据到CLOB在Oracle中。Sqoop将Hive字符串导出到Oracle CLOB命令:sqoop export -Dsqoop.export.records.per.statement=1 --connect 'jdbc:oracle:thin:@192.168.41.67:1521:orcl' --username ILABUSER --password ...

weixin_32825955的博客 1112

内网Linux服务器离线安装python包

3、将下载的依赖包和requirements.txt 拷贝到内网主机,依赖包和requirements.txt放同一级目录,进入该目录,运行指令。其实还有个更加方便的办法,联网主机装个与内网主机一样环境的虚拟机,在虚拟机中下载py包,拷贝到内网主机后就能直接安装了,省去手动下载py包的步骤。简单记录下最近遇到的一个小问题,内网主机没有内网源,处于无互联网状态,安装python包只能通过联网主机下载好后拷贝到内网主机。由于内网主机安装了多个版本的python,为了防止搞错,使用这种方式来调用pip安装。

cyc头发还挺多的博客 652

sqoop 从oracle到hive数据错位,并产生很多null值,clob类型被截取成一小段一小段

1、在执行Sqoop从oracle和mysql导数到hive中时,出现hive数据错位,并产生很多null值: 原因是源数据中包含许多'\n'、'\r'、'\01'等字符,表在分割字段和行过程中出现错位; 解决方式:在Sqoop执行中增加属性–hive-drop-import-delims,在导入数据到hive中时,去掉数据中\n,\r和\01这样的字符; --hive-drop-imp

小海的专栏 4214

Python实战:超分辨率图像质量评估全攻略——PSNR、SSIM、LPIPS与NIQE的代码实现与优化

本文详细介绍了在Python中实现超分辨率图像质量评估的完整方案,涵盖PSNR、SSIM、LPIPS和NIQE四大核心指标。通过模块化代码设计、多进程并行处理和GPU加速优化,帮助开发者构建高效、可扩展的评估系统,并提供了实战避坑指南与结果解读方法。

weixin_29053073的博客 477

ur3手眼标定+realsenseL515

知乎 csdn

AI_future的博客 978

【大数据开发运维解决方案】sqoop增量导入oracle/mysql数据到hive时时间字段为null处理

前面几篇文章详细介绍了sqoop全量增量导入数据到hive,比如文章(sqoop避免输入密码自动增量job脚本介绍)里面的案例和给出的其他相关文章的连接,笔者使用sqoop导入oracle数据到hive是为了做增量cube用,但是在前面的某篇文章Sqoop全量同步mysql/Oracle数据到hive中大家可以看到我导入的数据如果有时间字段的话我都是在hive指定成了string类型,虽然这样可以处理掉时间字段在hive为空的问题,但是在kylin创建增量cube时需要指定一个时间字段来做增量,所以上面那种

赵延东的一亩三分地 16万+

Python量化投资入门教程:从零构建你的第一个交易策略

量化投资教程以数学模型和计算机程序实现超额收益,选用Python工具链完成数据获取、策略构建及回测。通过移动平均线交叉策略示例,展示数据预处理、信号生成、收益计算及可视化全流程,结合收益率、最大回撤和夏普比率评估策略,并建议参数优化与策略融合提升稳健性。

ylmx5201314的博客 2460

HIVE CLOB字段处理

在将数据由oracle数据库导入到Hive时,发现

在路上 1万+

慕课软件质量保证与测试(习题集)

慕课金陵科技学院.软件质量保证与测试.期末复习.习题汇总0 总目录1 绪论1.1 软件质量保证与测试的产生与发展1.2 软件缺陷,软件错误,软件故障1.3 软件质量保证与测试的意义,原则和挑战1.4 单元测试1.5 课后作业2 软件测试策略2.1 软件测试的模型,过程和生命周期2.2 软件测试的方法和技术2.3 单元测试2.4 课后作业3 黑盒测试3.1 黑盒测试概述3.2 等价类划分测试3.3 边界值测试3.4 错误推测法3.5 判定表驱动法3.6 因果图法3.7 场景法3.8 正交实验法3.9 单元测试

weixin_42473228的博客 5万+

西门子S7-200 SMART PLC控制伺服电机

以下是使用西门子S7-200 SMART PLC控制伺服电机的详细程序框架和配置说明,涵盖硬件接线、PLC配置和基本运动控制逻辑。具体实现需根据伺服电机型号(如松下、三菱、台达等)调整参数。通过以上步骤,可实现伺服电机的基础位置控制。实际应用需根据设备机械参数和伺服驱动器手册调整细节。建议在调试时逐步测试脉冲输出和方向信号是否正常。

CHUXUEZHE8210的博客 6432

sqoop处理换行符--包含clob字段情况

一、sqoop同步oracle数据非clob字段: 要处理换行符,在sqoop脚本中,参数使用下面任意一个即可 #替换为空 --hive-delims-replacement "" #删除 --hive-drop-import-delims 二、sqoop同步oracle数据clob字段 clob字段一般包含大量文本,必然包含换行符,使用上面参数没有作用,需要使用下面参数: #指定clob列为String类型 --map-column-java CLOB列=String 例子如下: orac

Rango_lhl的博客 1733

GMSL转eDP芯片MAX9686X(ADI)

MAX96860/MAX96862/MAX96864解串器可以把单路或双路GMSL转换成eDP V1.4a,支持820MHzPCLK的无压缩的24bpp(每个像素的位数)视频,或660MHz的30bpp视频。芯片的GMSL支持NRZ编码的6Gbps/187Mbps的GMSL2,PAM4编码的12Gbps/187Mbps的GMSL3。同时支持单线(COAX模式)双向全双工传输控制数据和video数据。支持DSC压缩的芯片,最大支持像素时钟1080MHz@24bpp或者864MHz@30bpp,传输方式包括同轴

qflook的博客 2851

sqoop使用报告:安装、向oracle导数据

前面的废话: 准备换工作了,开始整理这份工作中的笔记。使用sqoop的契机是公司有从hdfs往oracle导数据的需求,于是本白板小号硬着头皮网上搜寻了一圈,找到了sqoop,赶时间就没有细究官方文档了,好在网上资料不少,我要求也不高,最后总算是成功了,特此记录,以供自己以后温习。 这次只是导出数据,所以对sqoop的研究很浅,之后有所获再继续补充。 开发环境: 1.cen

izzzyx的专栏 714

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

正确定位到sqoop导数失败原因(可定位到具体数据)

1、sqoop导数时,添加额外的配置参数 sqoop export -Dorg.apache.sqoop.export.text.dump_data_on_error=true \ --username ${USERNAME} \ ......#其他的配置 -Dorg.apache.sqoop.export.text.dump_data_on_error=true 该配置可以让你在导数出错的时候将导致错误的具体数据展示出来 2、进入正确的log目录 进入失败的...

靓仔!——没错!我叫你呢! 3887

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

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

sqoop导数到各个数据库,可以套用

sqoop 从Oracle 导数据到 hive 中 出现的问题,请问怎么解决 #!/bin/bash while read line do hdfs dfs -rmr /user/hive/warehouse/aml.db/$line echo “********** 开始导入表 KaTeX parse error: Undefined control sequence: \ at position 32: … sqoop import \̲ ̲ --connect jdb…line” where

weixin_46153092的博客 470

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

sqoop从Mysql往HDFS导数据失败

脚本没问题的情况下 1.看sqoop是否能连上数据库 2.看连接的数据库IP、密码、端口是否正确

xxl0769的博客 1603

sqoop在MySQL和hive间导数遇见的几种问题

无论是新版本,还是老版本,遇到的问题大部分都是相同的。下面解决问题的方法仅供借鉴 1.拒绝连接的错误表现是什么? 2.表不存在该如何解决? 3.null字段填充符该如何指定? 最近利用sqoop在MySQL和hive间相互导数时遇见如下几种问题: 1、ip相互能够ping通,但是mysql拒绝hive的访问(已经用了root权限)。 该问题出在mysql的权限设定上,一般本地电

abc200941410128的博客 3828

sqoop详细导入导出数据步骤

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

zp17834994071的博客 8331

使用sqoop在mysql和hive中导数

hive的数据导入mysql 通过Sqoop将Hive表数据导入到Mysql通常有两种情况。 第一种是将hive上某张表的全部数据导入到mysql对应的表中。 第二种是将hive上某张表中的部分数据导入到mysql对应的表中。 两种方式的区别在于第二种情况需要指定要导入数据的列名称。两种情况的导入方式分别如下: 1.全部导入 Sqoop export --connect  jdbc...

weixin_41151172的博客 662

Sqoop安装

1.Sqoop介绍 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(Mysql、Oracle…)间进行数据的传递,可以将一个关系型数据库中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。 Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了Import和Export这两个工具。 Sqoop impor...

Maqiuqiu520的博客 351

Sqoop的一些基本操作

目录Sqoop功能Sqoop架构数据导入Hive流程数据导入HDFS原理数据从HDFS导出原理Sqoop导数据语法mysql中导入表的指定列到HDFSmysql中增量导入数据到HDFS导入数据到Hive中导入数据到Hive分区中导入数据到HBase中HDFS向mysql中导出数据导入数据到job导数据报错处理 前面已经给大家讲过sqoop的安装,如果还没有安装的可以再去看看详细安装流程: sqoop详细安装与环境配置 sqoop的作用前面也说过主要用于做数据迁移,它用于从关系数据库(如MySQL,Oracl

qq_42448606的博客 1626

Sqoop导入关系型数据库-解密Sqoop

Sqoop作为Hadoop与传统数据库之间的桥梁,对于数据的导入导出有着重要作用。通过对Sqoop基本语法以及功能的阐述,深刻解密Sqoop的作用和价值。

dashujuedu的博客 1873

sqoop 从hive导入mysql 出现:ERROR tool.BaseSqoopTool: Error parsing arguments for export:(问题解决)

问题描述部分 ERROR tool.BaseSqoopTool: Error parsing arguments for export: 大概意思是 sqoop工具不能解析这个语句。 错误原因: 里面的字段可能写错,导致不能sqoop不能识别。 解决方法 仔细检查自己写的语句 ,空格,单词是否少写或多写,下面给导入语句案例介绍。 提示:注意自己对应的字段和数据库连接名字 bin/sqoop export \ --connect jdbc:mysql://bigdata03:3306/company \ -

张国荣家的弟弟 1万+

sqoop oracle导数异常-----java.sql.SQLException: Missing IN or OUT parameter at index:: 2

  工作中同事使用sqoop 导入mysql表没问题,换成oracle就报错,让我帮忙看下,抽取oracle数据出现如下异常: Caused by: java.sql.SQLException: Missing IN or OUT parameter at index:: 2     at oracle.jdbc.driver.OraclePreparedStatement.processCom...

wflh323的专栏 1万+

第十六天 - Sqoop工具使用 - Hadoop、Hive、Sqoop常见问题 - 数据可视化工具ECharts.md

#第十六天 - Sqoop工具使用 - Hadoop、Hive、Sqoop常见问题 - 数据可视化工具ECharts 文章目录一、Sqoop从MySql导数据到Hive过程执行Sqoop命令Sqoop简介使用方法实例(官方案例)运行效果 一、Sqoop从MySql导数据到Hive过程 #####导入至HDFS 指定命令 - 声明配置项 - 指定参数 命令语句 - 翻译成程序 - 打成jar包 将...

cry970795248的博客 2621
上一篇: Hadoop工程师面试题:使用linux命令完成文本处理
下一篇: 集群规模、mysql与hbase区别
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值