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

本文涉及的产品
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 
目录
相关文章
|
弹性计算 JSON 数据可视化
Grafana 10 新特性解读,体验与协作全面提升
Grafana 10 新特性解读:体验与协作全面提升
32520 99
|
IDE Java Maven
如何解决类路径问题
类路径问题通常出现在Java等编程语言中,解决方法包括:确保文件路径正确、使用相对路径、检查环境变量配置、利用构建工具(如Maven)管理依赖、清理和重新构建项目。
564 13
|
SQL 分布式计算 关系型数据库
Sqoop入门(一篇就够了)
Sqoop入门(一篇就够了)
8591 3
Sqoop入门(一篇就够了)
ElementUI表单校验trigger设为change无效问题
ElementUI表单校验trigger设为change无效问题
768 1
|
机器学习/深度学习 供应链 安全
守护Windows系统安全:挑战、策略与未来展望
加强数据备份与恢复以及提升用户安全意识等。同时,展望未来,人工智能与机器学习、零信任架构、量化安全评估与风险管理以及强化供应链安全等新技术和新理念将为Windows系统安全提供更加坚实的保障。让我们共同努力,守护好Windows系统的安全防线,为数字化时代的繁荣发展贡献力量。
|
存储 关系型数据库 MySQL
MySQL分区表:万字详解与实践指南
MySQL分区表:万字详解与实践指南
|
Java
Java代码如何打造抽奖系统
Java代码如何打造抽奖系统
518 0
|
Java 数据库连接 数据库
什么时候用@MapperScan 注解?
什么时候用@MapperScan 注解?
647 0
|
SQL 分布式计算 关系型数据库
CDH环境搭建及部署及常见错误解决方法
Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop。
3249 1
CDH环境搭建及部署及常见错误解决方法
|
Ubuntu 固态存储
如何在 Ubuntu 20.04 上添加交换空间?
如何在 Ubuntu 20.04 上添加交换空间?
432 0
如何在 Ubuntu 20.04 上添加交换空间?