[ https://issues.apache.org/jira/browse/HIVE-12957?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15122315#comment-15122315 ]
Siddharth Seth commented on HIVE-12957: --------------------------------------- Throwing a meaningful error would be ideal. However, a negative values comes directly from the YARN scheduler. In the past, getting certain parameters like headroom right on the YARN schedulers has required multiple iterations - and may still have corner cases which have not been explored. If a value like this comes in - we'd end up in a situation where jobs would fail randomly - until the issue is fixed by YARN. Also, given that the number of splits is determined by available capacity - there's other cases where we ask for a single split - e.g. when the cluster is fully occupied and available capacity is 0. That scenario is almost as bad. Requesting 1 split from FileInputFormat does not mean it returns only 1 split - it would still return 1 split per block. The biggest problem with masking this is that we will not be able to report these issues so that they eventually get fixed. > hive/tez query intermittently vertex initialize failure Illegal Capacity: -1 > ----------------------------------------------------------------------------- > > Key: HIVE-12957 > URL: https://issues.apache.org/jira/browse/HIVE-12957 > Project: Hive > Issue Type: Bug > Components: Tez > Affects Versions: 1.2.0 > Reporter: Jason Dere > Assignee: Jason Dere > Attachments: HIVE-12957.1.patch > > > {noformat} > org.apache.tez.dag.app.dag.impl.AMUserCodeException: > java.lang.IllegalArgumentException: Illegal Capacity: -1 > at > org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallback.onFailure(RootInputInitializerManager.java:292) > at com.google.common.util.concurrent.Futures$4.run(Futures.java:1140) > at > com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:293) > at > com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:150) > at > com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:135) > at > com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91) > at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:380) > at java.util.concurrent.FutureTask.setException(FutureTask.java:247) > at java.util.concurrent.FutureTask.run(FutureTask.java:267) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.IllegalArgumentException: Illegal Capacity: -1 > at java.util.ArrayList.<init>(ArrayList.java:142) > at > org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:332) > at > org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:305) > at > org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:407) > at > org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:155) > at > org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:246) > at > org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:240) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:415) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) > at > org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:240) > at > org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:227) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > ... 3 more > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)