All Downloads are FREE. Search and download functionalities are using the official Maven repository.

water.init.AbstractEmbeddedH2OConfig Maven / Gradle / Ivy

package water.init;

import java.net.InetAddress;

/**
 * This class is a small shim between a main java program (such as a
 * Hadoop mapper) and an embedded full-capability H2O.
 */
public abstract class AbstractEmbeddedH2OConfig {
  /**
   * Tell the embedding software that H2O has started an embedded
   * web server on an IP and port.
   * This may be nonblocking.
   *
   * @param ip IP address this H2O can be reached at.
   * @param port Port this H2O can be reached at (for REST API and browser).
   */
  public abstract void notifyAboutEmbeddedWebServerIpPort(InetAddress ip, int port);

  /**
   * Whether H2O gets a flatfile config from this config object.
   * @return true if H2O should query the config object for a flatfile.  false otherwise.
   */
  public abstract boolean providesFlatfile();

  /**
   * If configProvidesFlatfile, get it.  This may incur a blocking network call.
   * This must be called after notifyAboutEmbeddedWebServerIpPort() or the behavior
   * will be undefined.
   *
   * This method includes it's own address, because the config may be building up
   * and managing a directory of H2O nodes.
   *
   * If this method throws any kind of exception, the node failed to get it's config,
   * and this H2O is hosed and should exit gracefully.
   *
   * @return A string with the multi-line flatfile text.
   */
  public abstract String fetchFlatfile() throws Exception;

  /**
   * Tell the embedding software that this H2O instance belongs to
   * a cloud of a certain size.
   * This may be nonblocking.
   *
   * @param ip IP address this H2O can be reached at.
   * @param port Port this H2O can be reached at (for REST API and browser).
   * @param size Number of H2O instances in the cloud.
   */
  public abstract void notifyAboutCloudSize(InetAddress ip, int port, int size);

  /**
   * Tell the embedding software that H2O wants the process to exit.
   * This should not return.  The embedding software should do any
   * required cleanup and then call exit with the status.
   *
   * @param status Process-level exit status
   */
  public abstract void exit (int status);

  /**
   * Print debug information.
   */
  public abstract void print();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy