Source:
<code>void init(Configuration conf, LlapRegistryService registry, LlapManagementProtocolClientImplFactory clientFactory) { this.registry = registry; this.clientFactory = clientFactory; this.minServedTasksNumber = HiveConf.getIntVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_MIN_SERVED_TASKS); this.minConfigChangeDelayMs = HiveConf.getTimeVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_MIN_CHANGE_DELAY, TimeUnit.MILLISECONDS); this.timeThreshold = HiveConf.getFloatVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_TIME_THRESHOLD); this.emptyExecutorsThreshold = HiveConf.getFloatVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_EMPTY_EXECUTORS); this.maxBlacklistedNodes = HiveConf.getIntVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_MAX_LISTED_NODES); <START> Preconditions.checkArgument(minServedTasksNumber > 0, <END> "Minimum served tasks should be greater than 0"); Preconditions.checkArgument(minConfigChangeDelayMs > 0, "Minimum config change delay should be greater than 0"); Preconditions.checkArgument(timeThreshold > 1.0f, "The time threshold should be greater than 1"); Preconditions.checkArgument(maxBlacklistedNodes > 0, "The maximum number of blacklisted node should be greater than 1"); LOG.debug("BlacklistingLlapMetricsListener initialized with " + "minServedTasksNumber={}, " + "minConfigChangeDelayMs={}, " + "timeThreshold={}, " + "emptyExecutorsThreshold={}, " + "maxBlacklistedNodes={}", minServedTasksNumber, minConfigChangeDelayMs, timeThreshold, emptyExecutorsThreshold, maxBlacklistedNodes); }</code><technical_language>greater zero insufficient. want real limits (i.e. 100 tasks, 5s, ....)</technical_language>

Target:
void init(Configuration conf, LlapRegistryService registry, LlapManagementProtocolClientImplFactory clientFactory) { this.registry = registry; this.clientFactory = clientFactory; this.minServedTasksNumber = HiveConf.getIntVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_MIN_SERVED_TASKS); this.minConfigChangeDelayMs = HiveConf.getTimeVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_MIN_CHANGE_DELAY, TimeUnit.MILLISECONDS); this.timeThreshold = HiveConf.getFloatVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_TIME_THRESHOLD); this.emptyExecutorsThreshold = HiveConf.getFloatVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_EMPTY_EXECUTORS); this.maxBlacklistedNodes = HiveConf.getIntVar(conf, HiveConf.ConfVars.LLAP_TASK_SCHEDULER_BLACKLISTING_METRICS_LISTENER_MAX_LISTED_NODES); Preconditions.checkArgument(minServedTasksNumber > 0, "Minimum served tasks should be greater than 0"); Preconditions.checkArgument(minConfigChangeDelayMs > 0, "Minimum config change delay should be greater than 0"); Preconditions.checkArgument(timeThreshold > 1.0f, "The time threshold should be greater than 1"); Preconditions.checkArgument(maxBlacklistedNodes > 0, "The maximum number of blacklisted node should be greater than 1"); Preconditions.checkNotNull(registry, "Registry should not be null"); Preconditions.checkNotNull(clientFactory, "ClientFactory should not be null"); LOG.info("BlacklistingLlapMetricsListener initialized with " + "minServedTasksNumber={}, " + "minConfigChangeDelayMs={}, " + "timeThreshold={}, " + "emptyExecutorsThreshold={}, " + "maxBlacklistedNodes={}", minServedTasksNumber, minConfigChangeDelayMs, timeThreshold, emptyExecutorsThreshold, maxBlacklistedNodes); }