package mil.nga.giat.geowave.examples.accumulo.app; import java.io.File; import java.util.concurrent.TimeUnit; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.minicluster.impl.MiniAccumuloClusterImpl; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; import org.apache.accumulo.monitor.Monitor; import org.apache.hadoop.util.VersionInfo; import org.apache.hadoop.util.VersionUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.io.Files; import mil.nga.giat.geowave.datastore.accumulo.minicluster.MiniAccumuloClusterFactory; public class GeoWaveDemoApp { private static final Logger LOGGER = LoggerFactory.getLogger(GeoWaveDemoApp.class); protected static final String HADOOP_WINDOWS_UTIL = "winutils.exe"; protected static boolean isYarn() { return VersionUtil.compareVersions( VersionInfo.getVersion(), "2.2.0") >= 0; } public static void main( final String[] args ) throws Exception { org.apache.log4j.Logger.getRootLogger().setLevel( org.apache.log4j.Level.WARN); final boolean interactive = (System.getProperty("interactive") != null) ? Boolean.parseBoolean(System .getProperty("interactive")) : true; final String password = System.getProperty("password"); final File tempDir = Files.createTempDir(); final String instanceName = (System.getProperty("instanceName") != null) ? System.getProperty("instanceName") : "geowave"; final MiniAccumuloConfigImpl miniAccumuloConfig = new MiniAccumuloConfigImpl( tempDir, password).setNumTservers( 2).setInstanceName( instanceName).setZooKeeperPort( 2181); miniAccumuloConfig.setProperty( Property.MONITOR_PORT, "50095"); final MiniAccumuloClusterImpl accumulo = MiniAccumuloClusterFactory.newAccumuloCluster( miniAccumuloConfig, GeoWaveDemoApp.class); accumulo.start(); accumulo.exec(Monitor.class); System.out.println("starting up ..."); Thread.sleep(3000); System.out.println("cluster running with instance name " + accumulo.getInstanceName() + " and zookeepers " + accumulo.getZooKeepers()); if (interactive) { System.out.println("hit Enter to shutdown .."); System.in.read(); System.out.println("Shutting down!"); accumulo.stop(); } else { Runtime.getRuntime().addShutdownHook( new Thread() { @Override public void run() { try { accumulo.stop(); } catch (final Exception e) { LOGGER.warn( "Unable to shutdown accumulo", e); System.out.println("Error shutting down accumulo."); } System.out.println("Shutting down!"); } }); while (true) { Thread.sleep(TimeUnit.MILLISECONDS.convert( Long.MAX_VALUE, TimeUnit.DAYS)); } } } }