跑hive有时成功有时失败!org.apache.hadoop.hive.ql.exec.mr.MapRedTask


在hadoop日常工作中,本地运行hive有时成功有时失败

遇到FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask异常


排查:

——> 直接在hadoop集群多次测试运行hive,没有出现错误,查询resourcemanage日志,

发现资源分配并无异常,根据job的id号追踪到datanode,日志显示也没有异常信息。

排除集群环境出错的情况。


——>      换台本地机器多次测试,也没有出现错误,所以问题出在出错的本地机器上。


——>      再次在本地测试跑hive语句,根据job的id号到集群服务器上查看,也没有异常,但是本地机器界面却显示错误,无法跑mr。

经再次排查:

原来是最近hadoop集群新增加了不少datanode节点服务器,而esourcemanager都是通过

域名来管理资源。当然集群上的每台服务器都通过salt同步过了,但有些同事的本地host环境并未添加

相关域名ip转换,所以当用hive提交任务时候,提交上去了,集群里在跑并把job分配给了新增加的

datanode,本地解析不了该域名,报错;如果集群resourcemanager把job分配到了原来老的datanode上,

本地能解析就显示正常。这也是为什么hive会有时候成功有时候失败。


解决办法:如有动态新增节点时,不仅同步集群的host环境,并提示各操作同事本地也同步一下。




### 关于 `org.apache.hadoop.hive.ql.exec.mr.MapRedTask` 的使用说明 #### Hadoop Hive 中 MapReduce 执行机制概述 Hive 是一种基于 Hadoop 构建的数据仓库工具,用于查询和管理存储在分布式文件系统中的大型数据集。当执行复杂的 SQL 查询时,Hive 将这些查询转换成一系列的 MapReduce 作业来处理大规模数据。 MapReduce 任务由多个阶段组成,包括映射(map) 和化简(reduce),而 `org.apache.hadoop.hive.ql.exec.mr.MapRedTask` 类负责管理和协调这些过程。此组件会启动并监控 MapReduce 工作流的状态,在遇到异常情况时抛出相应的错误信息[^1]。 #### 常见问题及其解决方案 ##### 错误代码 2 返回值分析 如果收到 "FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask" 这样的消息,则意味着 MapReduce 任务未能成功完成其预期目标。通常情况下,这可能是由于资源不足、配置不当或其他外部因素引起的[^2]。 为了诊断具体原因: - **检查日志记录**:查看 YARN 应用程序历史服务器上的详细日志输出,寻找任何可能指示根本原因的信息。 - **验证输入路径**:确认所提供的表名或目录确实存在于 HDFS 上,并且具有正确的权限设置允许访问它们的内容。 - **调整集群参数**:适当增加内存分配给容器(container), 或者减少并发运行的任务数量以减轻负载压力。 ##### 输入/输出路径不存在的情况 对于因 IO 异常导致的问题 (如 java.io.IOException),应特别注意是否存在非法字符或者拼写错误影响到了实际存在的位置名称;另外也要确保所使用的 URI 方案正确无误(例如 hdfs:// 而不是 file:///)。此外,还需核实是否有足够的磁盘空间可用于临时文件创建以及最终结果保存[^3]。 ```sql -- 示例:检查表是否存在 DESCRIBE my_table; ``` #### 额外建议措施 除了上述提到的方法之外,还可以采取以下预防性和补救性的行动来提高稳定性: - 定期清理过期缓存; - 更新至最新稳定版本软件包; - 对重要操作实施重试逻辑设计; - 实施全面的安全策略防止未授权更改环境变量等敏感属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撸依天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值