/** * Generate a container specification as a TaskManager template. * * <p>This code is extremely Mesos-specific and registers all the artifacts that the TaskManager * needs (such as JAR file, config file, ...) and all environment variables into a container specification. * The Mesos fetcher then ensures that those artifacts will be copied into the task's sandbox directory. * A lightweight HTTP server serves the artifacts to the fetcher. */ public static void applyOverlays( Configuration configuration, ContainerSpecification containerSpec) throws IOException { // create the overlays that will produce the specification CompositeContainerOverlay overlay = new CompositeContainerOverlay( FlinkDistributionOverlay.newBuilder().fromEnvironment(configuration).build(), HadoopConfOverlay.newBuilder().fromEnvironment(configuration).build(), HadoopUserOverlay.newBuilder().fromEnvironment(configuration).build(), KeytabOverlay.newBuilder().fromEnvironment(configuration).build(), Krb5ConfOverlay.newBuilder().fromEnvironment(configuration).build(), SSLStoreOverlay.newBuilder().fromEnvironment(configuration).build() ); // apply the overlays overlay.configure(containerSpec); }
@Override public void configure(ContainerSpecification containerConfig) throws IOException { for(ContainerOverlay overlay : overlays) { overlay.configure(containerConfig); } } }
public HadoopConfOverlay build() { return new HadoopConfOverlay(hadoopConfDir); } }
public HadoopUserOverlay build() { return new HadoopUserOverlay(ugi); } }
public SSLStoreOverlay build() { return new SSLStoreOverlay(keystorePath, truststorePath); } }
public KeytabOverlay build() { return new KeytabOverlay(keytabPath); } }
public Krb5ConfOverlay build() { return new Krb5ConfOverlay(krb5ConfPath); } }
public FlinkDistributionOverlay build() { return new FlinkDistributionOverlay(flinkBinPath, flinkConfPath, flinkLibPath); } }
public static Builder newBuilder() { return new Builder(); }
public HadoopUserOverlay build() { return new HadoopUserOverlay(ugi); } }
@Override public void configure(ContainerSpecification containerConfig) throws IOException { for(ContainerOverlay overlay : overlays) { overlay.configure(containerConfig); } } }
public SSLStoreOverlay build() { return new SSLStoreOverlay(keystorePath, truststorePath); } }
public KeytabOverlay build() { return new KeytabOverlay(keytabPath); } }
public HadoopConfOverlay build() { return new HadoopConfOverlay(hadoopConfDir); } }
public Krb5ConfOverlay build() { return new Krb5ConfOverlay(krb5ConfPath); } }
public HadoopUserOverlay build() { return new HadoopUserOverlay(ugi); } }
@Override public void configure(ContainerSpecification containerConfig) throws IOException { for(ContainerOverlay overlay : overlays) { overlay.configure(containerConfig); } } }
public SSLStoreOverlay build() { return new SSLStoreOverlay(keystorePath, truststorePath); } }
public KeytabOverlay build() { return new KeytabOverlay(keytabPath); } }
public HadoopUserOverlay build() { return new HadoopUserOverlay(ugi); } }