[
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)