hive on tez 执行任务报错

当使用Hive on Tez执行任务时遇到报错,通常是由于资源不足或被抢占。解决方案包括调整Tez的配置参数,如增大AM和Task的最大重试次数,以及设置适当的Container大小。重要参数包括`tez.am.max.app.attempts`、`tez.am.task.max.failed.attempts`和`tez.container.size`。此外,还涉及到AM和Container的JVM内存设置,以及Map Join的相关参数调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

hive on tez,在执行任务的时候报错,这种情况原因是container资源被抢占或者是资源不足。而task最大的失败次数默认是4,am自己失败的最大重试次数默认是2次。

报错日志:

Vertex did not succeed due to OTHER_VERTEX_FAILURE, failedTasks:0 killedTasks:13
Vertex vertex_1588914175897_18178_1_00 [Map 7] killed/failed due to:OTHER_VERTEX_FAILURE, counters=Counters: 35, File System Counters, FILE_BYTES_READ=47800, FILE_BYTES_WRITTEN=1107572220, HDFS_BYTES_READ=745850999, HDFS_READ_OPS=60, HDFS_OP_OPEN=60, org.apache.tez.common.counters.TaskCounter, SPILLED_RECORDS=16203009, GC_TIME_MILLIS=3322, CPU_MILLISECONDS=239810, PHYSICAL_MEMORY_BYTES=17135828992, VIRTUAL_MEMORY_BYTES=32139993088, COMMITTED_HEAP_BYTES=17135828992, INPUT_RECORDS_PROCESSED=16203009, INPUT_SPLIT_LENGTH_BYTES=4733999156, OUTPUT_RECORDS=16203009, OUTPUT_BYTES=2399220587, OUTPUT_BYTES_WITH_OVERHEAD=2442634582, OUTPUT_BYTES_PHYSICAL=1107524420, ADDITIONAL_SPILLS_BYTES_WRITTEN=0, ADDITIONAL_SPILLS_BYTES_READ=0, ADDITIONAL_SPILL_COUNT=0, SHUFFLE_CHUNK_COUNT=5, HIVE, DESERIALIZE_ERRORS=0, RECORDS_IN_Map_7=16203009, RECORDS_OUT_INTERMEDIATE_Map_7=16203009, TaskCounter_Map_7_INPUT_company_baseinfo_complex, INPUT_RECORDS_PROCESSED=16203009, INPUT_SPLIT_LENGTH_BYTES=4733999156, TaskCounter_Map_7_OUTPUT_Reducer_8, ADDITIONAL_SPILLS_BYTES_READ=0, ADDITIONAL_SPILLS_BYTES_WRITTEN=0, ADDITIONAL_SPILL_COUNT=0, OUTPUT_BYTES=2399220587, OUTPUT_BYTES_PHYSICAL=1107524420, OUTPUT_BYTES_WITH_OVERHEAD=2442634582, OUTPUT_RECORDS=16203009, SHUFFLE_CHUNK_COUNT=5, SPILLED_RECORDS=16203009, vertexStats=firstTaskStartTime=1589836372219, firstTasksToStart=[ task_1588914175897_18178_1_00_000012,task_1588914175897_18178_1_00_000013,task_1588914175897_18178_1_00_000010,task_1588914175897_18178_1_00_000011 ], lastTaskFinishTime=1589836672777, lastTasksToFinish=[ task_1588914175897_18178_1_00_000008,task_1588914175897_18178_1_00_000009,task_1588914175897_18178_1_00_000006,task_1588914175897_18178_1_00_000007 ], minTaskDuration=38304, maxTaskDuration=61170, avgTaskDuration=49326.8, numSuccessfulTasks=5, shortestDurationTasks=[ task_1588914175897_18178_1_00_000001 ], longestDurationTasks=[ task_1588914175897_18178_1_00_000000 ], vertexTaskStats={numFailedTaskAttempts=0, numKilledTaskAttempts=0, numCompletedTasks=18, numSucceededTasks=5, numKilledTasks=13, numFailedTasks=0}
2020-05-19 05:17:52,787 [INFO] [Dispatcher thread {Central}] |impl.VertexImpl|: vertex_1588914175897_18178_1_00 [Map 7] transitioned from TERMINATING to KILLED due to event V_TASK_COMPLETED
2020-05-19 05:17:52,788 [INFO] [Dispatcher thread {Central}] |history.HistoryEventHandler|: [HISTORY][DAG:dag_1588914175897_18178_1][Event:CONTAINER_STOPPED]: containerId=container_e57_1588914175897_18178_02_000007, stoppedTime=1589836672788, exitStatus=-1000
2020-05-19 05:17:52,789 [INFO] [Dispatcher thread {Central}] |impl.DAGImpl|: Vertex vertex_1588914175897_18178_1_04 [Reducer 2] completed., numCompletedVertices=7, numSuccessfulVertices=2, numFailedVertices=1, numKilledVertices=4, numVertices=8
2020-05-19 05:17:52,789 [INFO] [Dispatcher thread {Central}] |impl.DAGImpl|: Checking vertices for DAG completion, numCompletedVertices=7, numSuccessfulVertices=2, numFailedVertices=1, numKilledVertices=4, numVertices=8, commitInProgress=0, terminationCause=VERTEX_FAILURE
2020-05-19 05:17:52,789 [INFO] [Dispatcher thread {Central}] |node.AMNodeImpl|: Attempt failed on node: storm-node-20:45454 TA: attempt_1588914175897_18178_1_00_000002_0 failed: false container: container_e57_1588914175897_18178_02_000007 numFailedTAs: 0
2020-05-19 05:17:52,789 [INFO] [Dispatcher thread {Central}] |history.HistoryEventHandler|: [HISTORY][DAG:dag_1588914175897_18178_1][Event:CONTAINER_STOPPED]: containerId=container_e57_1588914175897_18178_02_000004, stoppedTime=1589836672789, exitStatus=-1000
2020-05-19 05:17:52,789 [INFO] [Dispatcher thread {Central}] |node.AMNodeImpl|: Attempt failed on node: storm-node-15:45454 TA: attempt_1588914175897_18178_1_00_000006_0 failed: false container: container_e57_1588914175897_18178_0
### 关于Tez框架报错的解决方案 在使用Tez框架的过程中,可能会遇到各种类型的错误。以下是一些常见的报错场景以及对应的解决方案: #### 1. **版本冲突** 当Tez与Hadoop之间的版本不匹配时,可能会引发类加载异常或其他兼容性问题。例如,在某些情况下,`tez-0.9.1/lib`目录下的JAR包可能包含了与当前Hadoop集群版本不同的依赖项[^2]。 **解决方案**: 确认TeZ和Hadoop的版本兼容性。具体方法是查阅TeZ官方文档中的兼容性矩阵,确保所使用的TeZ版本能够适配当前Hadoop版本。如果发现版本冲突,则需调整Hadoop或TeZ版本以达到一致。此外,还可以通过清理`tez-0.9.1/lib`目录中不必要的旧版依赖来减少潜在风险。 --- #### 2. **内存分配不足** TeZ运行过程中可能出现因内存资源不足导致的任务失败。典型表现为参数如`tez.runtime.io.sort.mb`配置不当引起的错误[^4]。 **解决方案**: 适当增加内存分配比例。例如,可通过修改`tez-site.xml`文件中的相关属性实现优化: ```xml <property> <name>tez.runtime.io.sort.mb</name> <value>1024</value> <!-- 调整为适合集群规模的具体数值 --> </property> ``` 同时建议监控整个YARN队列的状态,确保有足够的容器供TeZ任务调度。 --- #### 3. **环境变量未正确设置** 如果TeZ的相关环境变量(如`TEZ_HOME`, `PATH`)未能被正确定义并传播至所有节点,则可能导致无法找到必要的二进制文件或脚本执行失败等问题[^1]。 **解决方案**: 验证各节点上的`.bashrc`或`.bash_profile`是否已包含正确的路径声明,并重启shell使更改生效。另外,对于需要跨用户共享配置的情况,应考虑将这些定义写入系统的全局profile文件里。 --- #### 4. **SQL查询逻辑缺陷** 即使底层框架正常工作,但如果提交给Hive-on-TeZ的应用程序本身存在问题——比如语法错误、统计函数误用等也会间接造成整体流程崩溃[^3]。 **解决方案**: 仔细审查原始SQL语句是否有任何违反标准的行为;必要时借助调试工具逐步定位确切位置再做修正。 --- ### 总结 针对以上提到的各种可能性,采取针对性措施往往可以快速缓解甚至彻底消除故障现象。当然实际操作前最好先备份现有设定以免意外损坏生产环境的数据完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值