tez 洗牌处理程序设置后失败:地图运算符初始化失败

Failure after tez shuffle handler setup : Map operator initialization failed

按照以下说明设置 Tez Shuffle 处理程序后:https://tez.apache.org/shuffle-handler.html 我在查询执行中遇到以下错误:

顶点失败,vertexName=Map 2,vertexId=vertex_1608273679503_0002_2_01,diagnostics=[Task failed,taskId=task_1608273679503_0002_2_01_000000,diagnostics=[TaskAttempt 0 failed,info=[Error: Error while 运行 task ( failure ) : attempt_1608273679503_0002_2_01_000000_0:java.lang.RuntimeException: java.lang.RuntimeException: Map operator 初始化失败 在 org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:296) 在 org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:250) 在 org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:374) 在 org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:73) 在 org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:61) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:422) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729) 在 org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:61) 在 org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:37) 在 org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) 在 org.apache.hadoop.hive.llap.daemon.impl.StatsRecordingThreadPool$WrappedCallable.call(StatsRecordingThreadPool.java:110) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) Caused by: java.lang.RuntimeException: Map 算子初始化失败 在 org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:363) 在 org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:266) ... 还有 15 个 原因:org.apache.hadoop.hive.ql.metadata.HiveException:异步初始化失败。中止请求=假 在 org.apache.hadoop.hive.ql.exec.Operator.completeInitialization(Operator.java:461) 在 org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:395) 在 org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:568) 在 org.apache.hadoop.hive.ql.exec.Operator.initialize 儿童 (Operator.java:520) 在 org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:381) 在 org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:335) ... 还有 16 个 原因:org.apache.hadoop.hive.ql.metadata.HiveException:org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.NullPointerException 在 org.apache.hadoop.hive.ql.exec.tez.LlapObjectCache.retrieve(LlapObjectCache.java:118) 在 org.apache.hadoop.hive.ql.exec.tez.LlapObjectCache$1.call(LlapObjectCache.java:143) ... 还有 4 个 原因:org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.NullPointerException 在 org.apache.hadoop.hive.ql.exec.vector.mapjoin.fast.VectorMapJoinFastHashTableLoader.load(VectorMapJoinFastHashTableLoader.java:113) 在 org.apache.hadoop.hive.ql.exec.MapJoinOperator.loadHashTableInternal(MapJoinOperator.java:331) 在 org.apache.hadoop.hive.ql.exec.MapJoinOperator.loadHashTable(MapJoinOperator.java:400) 在 org.apache.hadoop.hive.ql.exec.MapJoinOperator.lambda$initializeOp$0(MapJoinOperator.java:207) 在 org.apache.hadoop.hive.ql.exec.tez.LlapObjectCache.retrieve(LlapObjectCache.java:116) ... 还有 5 个 原因:java.lang.NullPointerException 在 org.apache.tez.runtime.api.impl.TezTaskContextImpl.getServiceConsumerMetaData(TezTaskContextImpl.java:190) 在 org.apache.tez.runtime.library.common.shuffle.impl.ShuffleManager.(ShuffleManager.java:264) 在 org.apache.tez.runtime.library.input.UnorderedKVInput.start(UnorderedKVInput.java:146) 在 org.apache.hadoop.hive.ql.exec.vector.mapjoin.fast.VectorMapJoinFastHashTableLoader.load(VectorMapJoinFastHashTableLoader.java:109) ... 还有 9 个

有人可以帮忙吗?

LLAP 在内部使用 MAP-REDUCE 洗牌处理程序,因为在 TEZ 代码中我们有一个硬编码常量 TEZ_SHUFFLE_HANDLER_SERVICE_ID = “mapreduce_shuffle”。 https://github.com/apache/tez/blob/master/tez-api/src/main/java/org/apache/tez/dag/api/TezConstants.java

因此,当我们将 tez_shuffle 与 LLAP 一起使用时,它会给出“NullpointerException”。