jjzjj

关于 mapreduce:什么是 Hive:从 org.apache.hadoop.hive.ql.exec.MapRedTask 返回代码 2

codeneng 2023-03-28 原文

What is Hive: Return Code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

我得到:

1
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

在尝试使用 hive 控制台中的命令创建分区表的副本??时:

1
2
CREATE TABLE copy_table_name LIKE table_name;
INSERT OVERWRITE TABLE copy_table_name PARTITION(day) SELECT * FROM table_name;

我最初遇到了一些语义分析错误,不得不设置:

1
2
set hive.exec.dynamic.partition=true
set hive.exec.dynamic.partition.mode=nonstrict

虽然我不确定上述属性的作用是什么?

来自 hive 控制台的完整输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapred.reduce.tasks=<number>
Starting Job = job_201206191101_4557, Tracking URL = http://jobtracker:50030/jobdetails.jsp?jobid=job_201206191101_4557
Kill Command = /usr/lib/hadoop/bin/hadoop job  -Dmapred.job.tracker=master:8021 -kill job_201206191101_4557
2012-06-25 09:53:05,826 Stage-1 map = 0%,  reduce = 0%
2012-06-25 09:53:53,044 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_201206191101_4557 with errors
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

  • 我在查询最近没有压缩的配置单元表时看到了这一点。尝试 - alter table xyz compact MAJOR;
  • 顺便说一句,设置 hive.auto.convert.join=false;解决了我的问题...
  • 就我而言,这个不太有用的错误消息是由于从我没有写入权限的文件夹中运行 hive 造成的。切换目录解决了这个问题。
  • 我遇到了同样的问题,我注意到从 Impala 但不是从 Hive 运行相同的查询。然后我浏览了 YARN Container 日志,我意识到 Name 节点处于安全模式。


这不是真正的错误,这里是如何找到它:

转到 hadoop jobtracker web-dashboard,找到失败的 hive mapreduce 作业并查看失败任务的日志。这会告诉你真正的错误。

控制台输出错误是无用的,主要是因为它没有查看单个作业/任务来提取真正的错误(多个任务中可能存在错误)

希望对您有所帮助。

  • 嗨@Matthew,这里也发生了同样的事情。我在 Talend 中运行它,这给了我这个错误,但在 HIVE 控制台中,它运行良好。任何线索我该如何恢复。谢谢
  • 有什么方法可以在不使用 web-dashboard 的情况下查看日志?
  • 哈哈,不。 Youd认为会有,但没有。 Amazons EMR 有所有的日志到 S3,所以你可以从 S3 存储桶中获取它们。可能是 yarn 默认将它们放在 HDFS 上,但我不知道如何弄清楚。


我知道我在这个帖子上迟到了 3 年,但仍然为将来的类似案件提供 2 美分。

我最近在集群中遇到了同样的问题/错误。
JOB 总是会减少 80% 并因相同的错误而失败,执行日志中也没有任何内容。
经过多次迭代和研究,我发现在加载的大量文件中,有些文件不符合为基表提供的结构(用于将数据插入分区表的表)。

这里要注意的是,每当我对分区列中的特定值执行选择查询或创建静态分区时,它都可以正常工作,因为在这种情况下会跳过错误记录。

TL;DR:检查传入数据/文件的结构是否不一致,因为 HIVE 遵循 Schema-On-Read 理念。


在此处添加一些信息,因为我花了一段时间在 HDInsight(Azure\\'s Hadoop)中找到了 hadoop jobtracker web-dashboard,最后一位同事向我展示了它在哪里。头节点上有一个名为"Hadoop Yarn Status"的快捷方式,它只是一个指向本地 http 页面的链接(在我的例子中是 http://headnodehost:9014/cluster)。打开仪表板时如下所示:

在该仪表板中,您可以找到失败的应用程序,然后单击它后,您可以查看各个地图的日志并减少作业。

在我的情况下,reducer 中的内存似乎仍然不足,即使我已经在配置中启动了内存。出于某种原因,它没有出现我之前遇到的"java outofmemory"错误。

  • 你能帮我如何在资源管理器中找到日志文件吗?


当我将数据插入指向 Elastic 搜索集群的 HIVE 外部表时,我也遇到了同样的错误。

我将旧 JAR elasticsearch-hadoop-2.0.0.RC1.jar 替换为 elasticsearch-hadoop-5.6.0.jar,一切正常。

我的建议是请根据弹性搜索版本使用特定的 JAR。如果您使用的是较新版本的弹性搜索,请勿使用较旧的 JAR。

感谢这篇文章 Hive-Elasticsearch Write Operation #409

  • 您向我们提供了相同问题的特定场景,但遭到了反对,这没有任何意义。我会给你投票。


最重要的答案是正确的,错误代码不会给你太多信息。我们在团队中看到此错误代码的常见原因之一是查询没有得到很好的优化。一个已知的原因是当我们在左侧表的大小大于右侧表的情况下进行内部连接时。在这种情况下,交换这些表通常可以解决问题。


我从 S3 的 EMR 输出路径中删除了 _SUCCESS 文件,它运行良好。


我遇到了同样的问题,因为我没有权限查询我正在尝试的数据库。

如果您没有权限查询表/数据库,除了 Return Code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask 错误,您会看到 Cloudera Manager 甚至没有注册您的查询。


即使我遇到了同样的问题 - 在仪表板上检查时,我发现以下错误。由于数据是通过 Flume 来的,并且在两者之间中断,因此可能是少数文件中存在不一致。

1
Caused by: org.apache.hadoop.hive.serde2.SerDeException: org.codehaus.jackson.JsonParseException: Unexpected end-of-input within/between OBJECT entries

运行在更少的文件上。格式一致性是我的原因。

  • 我遇到了同样的问题。但是 m 找不到日志文件。你能帮我找到日志文件吗?


我在直线中创建配置单元表时遇到了同样的错误,然后尝试通过引发实际错误的 spark-shell 创建。在我的情况下,错误是 hdfs 目录的磁盘空间配额。

org.apache.hadoop.ipc.RemoteException: The DiskSpace quota of /user/hive/warehouse/XXX_XX.db is exceeded: quota = 6597069766656 B = 6 TB but diskspace consumed = 6597493381629 B = 6.00 TB


连接两个表时收到此错误。一个表很大,另一个表很小,可以放入磁盘内存中。在这种情况下,使用

set hive.auto.convert.join = false

这可能有助于摆脱上述错误。有关此问题的更多详细信息,请参阅以下主题

  • Hive Map-Join 配置之谜
  • Hive.auto.convert.join = true 这个有什么意义?
  • 有关关于 mapreduce:什么是 Hive:从 org.apache.hadoop.hive.ql.exec.MapRedTask 返回代码 2的更多相关文章

    1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

      我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

    2. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

      导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

    3. hadoop安装之保姆级教程(二)之YARN的配置 - 2

      1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

    4. Hive SQL 五大经典面试题 - 2

      目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类

    5. ruby-on-rails - 关于 Ruby 的一般问题 - 2

      我在我的rails应用程序中安装了来自github.com的acts_as_versioned插件,但有一段代码我不完全理解,我希望有人能帮我解决这个问题class_eval我知道block内的方法(或任何它是什么)被定义为类内的实例方法,但我在插件的任何地方都找不到定义为常量的CLASS_METHODS,而且我也不确定是什么here,并且有问题的代码从lib/acts_as_versioned.rb的第199行开始。如果有人愿意告诉我这里的内幕,我将不胜感激。谢谢-C 最佳答案 这是一个异端。http://en.wikipedia

    6. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

      按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

    7. ruby - 关于 Ruby 中 Dir[] 和 File.join() 的混淆 - 2

      我在Ruby中遇到了一个关于Dir[]和File.join()的简单程序,blobs_dir='/path/to/dir'Dir[File.join(blobs_dir,"**","*")].eachdo|file|FileUtils.rm_rf(file)ifFile.symlink?(file)我有两个困惑:首先,File.join(@blobs_dir,"**","*")中的第二个和第三个参数是什么意思?其次,Dir[]在Ruby中有什么用?我只知道它等价于Dir.glob(),但是,我对Dir.glob()确实不是很清楚。 最佳答案

    8. elasticsearch源码关于TransportSearchAction【阶段三】 - 2

      1.回顾.TransportServicepublicclassTransportServiceextendsAbstractLifecycleComponentTransportService:方法:1publicfinalTextendsTransportResponse>voidsendRequest(finalTransport.Connectionconnection,finalStringaction,finalTransportRequestrequest,finalTransportRequestOptionsoptions,TransportResponseHandlerT>

    9. 关于Qt程序打包后运行库依赖的常见问题分析及解决方法 - 2

      目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'

    10. ruby-on-rails - Phusion Passenger 不在 Apache 上工作 - 2

      更新:当输入“passenger-memory-stats”时,我显示:---Passengerprocesses---Processes:0我该如何解决这个问题?为什么即使我在httpd.conf中添加它并重新启动apache,passenger也不会启动?我无法让PhusionPassenger在服务器上运行RubyonRails。我已经按照Phusion网站上的所有说明安装了passenger并修改并创建了ApacheVirtualHost以指向新目录并验证所有.conf文件都已成功加载。还加载了httpd-Mpassenger_module。我还在本地主机上成功运行了Passe

    随机推荐