use of com.dtstack.taier.flink.resource.FlinkPerJobResourceInfo in project Taier by DTStack.
the class FlinkClient method judgeSlots.
@Override
public JudgeResult judgeSlots(JobClient jobClient) {
ClusterMode clusterMode = ClusterMode.getClusteMode(flinkConfig.getClusterMode());
boolean isPerJob = ClusterMode.isPerjob(clusterMode);
JudgeResult judgeResult = JudgeResult.notOk(null);
try {
if (ClusterMode.isStandalone(clusterMode)) {
return judgeSessionSlot(jobClient, true);
}
judgeResult = KerberosUtils.login(flinkConfig, () -> {
FlinkPerJobResourceInfo perJobResourceInfo = FlinkPerJobResourceInfo.FlinkPerJobResourceInfoBuilder().withYarnClient(flinkClientBuilder.getYarnClient()).withQueueName(flinkConfig.getQueue()).withYarnAccepterTaskNumber(flinkConfig.getYarnAccepterTaskNumber()).build();
return perJobResourceInfo.judgeSlots(jobClient);
}, hadoopConf.getYarnConfiguration());
if (judgeResult.available() && !isPerJob) {
judgeResult = judgeSessionSlot(jobClient, false);
}
} catch (Exception e) {
logger.error("taskId:{} judgeSlots error: ", jobClient.getJobId(), e);
judgeResult = JudgeResult.exception("judgeSlots error:" + ExceptionUtil.getErrorMessage(e));
}
logger.info("taskId:{}, judgeResult: {}, reason: {}", jobClient.getJobId(), judgeResult.getResult(), judgeResult.getReason());
return judgeResult;
}
Aggregations