Search in sources :

Example 1 with Job

use of com.thinkbiganalytics.spark.metadata.Job in project kylo by Teradata.

the class JobTrackerService method createCache.

/**
 * Creates a job cache.
 */
@Nonnull
private Cache<String, Job<?>> createCache() {
    final Cache<String, Job<?>> cache = CacheBuilder.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).removalListener(new RemovalListener<String, Job<?>>() {

        @Override
        public void onRemoval(@Nonnull final RemovalNotification<String, Job<?>> notification) {
            // noinspection ConstantConditions
            final Optional<Integer> jobId = notification.getValue().getJobId();
            if (jobId.isPresent()) {
                jobs.remove(jobId.get());
            }
            for (final StageInfo stage : notification.getValue().getStages()) {
                stages.remove(stage.stageId());
            }
        // TODO remove temp table
        }
    }).build();
    // Schedule clean-up of groups
    executor.scheduleAtFixedRate(new Runnable() {

        @Override
        public void run() {
            groups.cleanUp();
        }
    }, 1, 1, TimeUnit.HOURS);
    return cache;
}
Also used : Nonnull(javax.annotation.Nonnull) StageInfo(org.apache.spark.scheduler.StageInfo) RemovalNotification(com.google.common.cache.RemovalNotification) SaveJob(com.thinkbiganalytics.spark.metadata.SaveJob) Job(com.thinkbiganalytics.spark.metadata.Job) SparkJob(com.thinkbiganalytics.spark.metadata.SparkJob) TransformJob(com.thinkbiganalytics.spark.metadata.TransformJob) RemovalListener(com.google.common.cache.RemovalListener) Nonnull(javax.annotation.Nonnull)

Aggregations

RemovalListener (com.google.common.cache.RemovalListener)1 RemovalNotification (com.google.common.cache.RemovalNotification)1 Job (com.thinkbiganalytics.spark.metadata.Job)1 SaveJob (com.thinkbiganalytics.spark.metadata.SaveJob)1 SparkJob (com.thinkbiganalytics.spark.metadata.SparkJob)1 TransformJob (com.thinkbiganalytics.spark.metadata.TransformJob)1 Nonnull (javax.annotation.Nonnull)1 StageInfo (org.apache.spark.scheduler.StageInfo)1