使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp

2022-07-10 20:17:39,786 INFO mapreduce.Job: Job job_1657447073157_0042 running in uber mode : false
2022-07-10 20:17:39,787 INFO mapreduce.Job: map 0% reduce 0%
2022-07-10 20:17:47,083 INFO mapreduce.Job: map 25% reduce 0%
2022-07-10 20:17:51,103 INFO mapreduce.Job: map 100% reduce 0%

报错的job Id 就是 Job job_1657447073157_0042

然后我就查找了一下yarn日志:

(1) 使用浏览器打开 : http://slave01:8042/logs slave01是我的从节点namenode

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp
(2)点击 userlogs/

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp
(3)点击自己job Id

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp
(4)打开第一个再点击syslog

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp

可以看到下面信息:

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp

SQLException:字符串值不正确:”\xE4\xB8\xAD\xE5\x9B\xBD…”对于第1行的”area”列

也就是在MySQL数据库建表的时候area的字符串值不正确,

我的sql语句是area VARCHAR(32) COMMENT ‘地区’

后来重新建表,更改area VARCHAR(32) COMMENT ‘地区’ 中VARCHAR(32) 的值

重新执行sqoop命令测试了n次还依旧报错。

我开始转变思路查看表的编码是否是UTF8;

结果不是:我开始更改建表的sql命令

这是之前的sql

CREATE TABLE nev.visit_dws (
sid_total INT(11) COMMENT '根据用户ID去重统计',
sessionid_total INT(11) COMMENT '根据sessionid去重统计',
ip_total INT(11) COMMENT '根据IP地址去重统计',
area VARCHAR(32) COMMENT '地区',
origin_channel VARCHAR(32) COMMENT '来源渠道',
from_url VARCHAR(3083) COMMENT '会话来源页面',
grouptype VARCHAR(32) COMMENT '1.地区维度 2.来源渠道维度 3.会话来源维度 4.总访问量维度',
yearinfo VARCHAR(32) COMMENT '年',
monthinfo VARCHAR(32) COMMENT '月'
);

更改后:创建表的时候都必须设置数据编码方式

CREATE TABLE nev.visit_dws (
sid_total INT(11) COMMENT '根据用户ID去重统计',
sessionid_total INT(11) COMMENT '根据sessionid去重统计',
ip_total INT(11) COMMENT '根据IP地址去重统计',
area VARCHAR(32) COMMENT '地区',
origin_channel VARCHAR(32) COMMENT '来源渠道',
from_url VARCHAR(3083) COMMENT '会话来源页面',
grouptype VARCHAR(32) COMMENT '1.地区维度 2.来源渠道维度 3.会话来源维度 4.总访问量维度',
yearinfo VARCHAR(32) COMMENT '年',
monthinfo VARCHAR(32) COMMENT '月'
)
charset utf8 collate utf8_general_ci;

再次执行Sqoop命令:

sqoop export \
–connect “jdbc:mysql://slave01/nev? useUnicode=true&characterEncoding=utf-8” \
–username root \
–password root \
–table visit_dws \
–hcatalog-database itcast_dws \
–hcatalog-table visit_dws

结果如下所示:

使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp

问题得以解决

感兴趣的同学可以+企鹅群:249300637

Original: https://blog.csdn.net/ghw666666666/article/details/125712078
Author: 查布嘎ghw
Title: 使用sqoop命令报错ERROR mapreduce.ExportJobBase: Export job failed ERROR tool.ExportTool: Error during exp

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817746/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球