presto-yarn
presto-yarn copied to clipboard
Unable to re-spawn killed presto process on HDP2.3 with node labeling
Yarn is unable to reschedule killed presto process when node labeling is used (placement policy) to distribute presto components around the clusters with HDP 2.3 (hadoop 2.7.0). Application starts successfuly, but fails when one presto process is killed. It works correctly when no placement policy is used.
It used to work on HDP 2.2 where hadoop 2.6.1 is used.
It looks as it is caused by the code difference pointed by link below. It seems that 2.7.0 introduces a check that labels are not supported when different than ResouceName.ANY is used ('cluster/default' is used in testing).
https://fossies.org/diffs/hadoop/2.6.0-src_vs_2.7.0-src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerUtils.java-diff.html
It affects and was discovered by limitSingleNodeFailures
and multiNodeWithPlacementLifecycle
in https://github.com/prestodb/presto-yarn/blob/master/presto-yarn-test/src/main/java/com/teradata/presto/yarn/test/PrestoClusterTest.java
Suggested solution is use to HDP 2.4 as it uses hadoop 2.8.0.