[已解决]ERROR tool.ExportTool: Error during export: Export job failed!

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: [已解决]ERROR tool.ExportTool: Error during export: Export job failed!

ERROR tool.ExportTool: Error during export: Export job failed!

问题

sqoop导出数据的时候遇到问题,ERROR tool.ExportTool: Error during export: Export job failed

思路

sqoop的shell命令是这样的

sqoop export
–connect jdbc:mysql://cdh00:3306/airquality
–username root
–password root
–table co
–export-dir hdfs://cdh01:8020/user/hive/warehouse/co
–input-fields-terminated-by ‘\001’ \

这里的错误就是经典的hive和mysql的表结构不对应,有可能你的实际情况和我不一样,但是按照这个思路去检查会很轻松找到你的问题根源。

这个问题是sqoop把你的数据往mysql中塞的时候格式不符,他就会返回这个错误。处理方式首先就应该检查两个表结构是否一致。

hive表结构查询

desc [表名];

在检查后我发现两个表结构是完全一致的,也有可能是hive的分隔符弄错了(–input-fields-terminated-by ‘\001’),检查后也没有问题,hive中确实使用默认的’\001’作为分隔符,那为什么会报错嘞?

除了hive表结构之外,我们再检查一下hive的数据,在hdfs/user/hive/warehouse/co中,可以在linux中hadoop fs -cat /user/hive/warehouse/co查看,为了方便我这里选择在windows中下载查看。

数据节选

201501122002A\N2.105

//我的数据除了前两条是string,后面都是double类型。

可以看到分隔符确实是"\001",但是double数据中有一个突兀的"\N"。原来是因为hive中的null值默认是按照字符串"\N"存储的,所以在获取数据时出现字符串"\N",而"\N"是字符串格式不符合double类型导致报错。

这里有两种处理方法,一种是将表结构统一改成varchar类型,但是这样"\N"就按照字符串存入了,不方便处理。所以加上两条参数–input-null-string和–input-null-non-string,在sqoop遇到"\N"后按照null进行插入处理。

修改后的sqoop命令

sqoop export
–connect jdbc:mysql://cdh00:3306/airquality
–username root
–password root
–table co
–export-dir hdfs://cdh01:8020/user/hive/warehouse/co
–input-fields-terminated-by ‘\001’
–input-null-string ‘\N’
–input-null-non-string ‘\N’

方案

网上的思路是对的,我检查表结构,发现一致,就只有字段长度问题了,全部扩充至255后,成功运行!


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
34527 4
Hadoop入门(一篇就够了)
|
12月前
|
机器学习/深度学习 存储 文字识别
阿里国际Ovis2系列模型开源:多模态大语言模型的新突破
Ovis是阿里巴巴国际化团队提出的新型多模态大模型架构,通过巧妙地将视觉和文本嵌入进行结构化对齐,为解决模态间嵌入策略差异这一局限性提供了方案。
861 2
阿里国际Ovis2系列模型开源:多模态大语言模型的新突破
|
IDE Java Maven
如何解决类路径问题
类路径问题通常出现在Java等编程语言中,解决方法包括:确保文件路径正确、使用相对路径、检查环境变量配置、利用构建工具(如Maven)管理依赖、清理和重新构建项目。
597 13
|
数据采集 分布式计算 Hadoop
Sqoop故障排除指南:处理错误和问题
Sqoop故障排除指南:处理错误和问题
ElementUI表单校验trigger设为change无效问题
ElementUI表单校验trigger设为change无效问题
825 1
|
SQL 分布式计算 关系型数据库
Sqoop入门(一篇就够了)
Sqoop入门(一篇就够了)
8761 3
Sqoop入门(一篇就够了)
|
存储 安全 Java
javax.security.auth.login.LoginException: Cannot locate KDC
`亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。` `项目背景`:公司项目当前采用http协议+shiro+mysql的登录认证方式,而现在想支持ldap协议认证登录然后能够访问自己公司的项目网站。 `举例说明`:假设我们公司有自己的门户网站,现在我们收购了一家公司,他们数据库采用ldap存储用户数据,那么为了他们账户能登陆我们公司项目所以需要集成,而不是再把他们的账户重新在mysql再创建一遍,万一人家有1W个账户呢,不累死了且也不现实啊。
382 8
|
文字识别
文本,文字识别,PaddleOCR,如何删除,PaddleOCR详解,检测,方向分类器,识别,检测的意思是检查字符的位置,查像素坐标,方向分类器,能够实现180度的图像,字符识别是把识别字符
文本,文字识别,PaddleOCR,如何删除,PaddleOCR详解,检测,方向分类器,识别,检测的意思是检查字符的位置,查像素坐标,方向分类器,能够实现180度的图像,字符识别是把识别字符
|
存储 关系型数据库 MySQL
MySQL分区表:万字详解与实践指南
MySQL分区表:万字详解与实践指南
|
数据可视化 前端开发 JavaScript
react+datav+echarts实现可视化数据大屏
最近有点闲,就学习了下react,没想到就把react学完了,觉得还不错,就打算出一把react+datav的简易版可视化数据大屏供大家做个参考
1650 2
react+datav+echarts实现可视化数据大屏

热门文章

最新文章