private static void startElasticsearch() throws Exception { try { FileUtils.deleteDirectory(new File("build/elasticsearch")); } catch (IOException e) { // ignore } final Settings settings = Settings.builder() .put("path.home", "build/elasticsearch") .put("node.name", "junit-es-node") .put("path.logs", "build/elasticsearch/logs") .put("path.data", "build/elasticsearch/data") .put("transport.type", "local") .put("http.type", "netty4") .build(); node = new TestNode(settings, Collections.singletonList(Netty4Plugin.class)); node.start(); node.client().admin().cluster().prepareHealth().setWaitForGreenStatus().get(); }
public synchronized void start(String clusterName, String host, int port) throws Exception { if (instance != null) { String msg = String.format( "An instance of this Embedded Elastic Search server is already running on port: %d. " + "It must be stopped before you can call start again.", getPort() ); logger.error(msg); throw new IllegalStateException(msg); } final Settings settings = getSettings(clusterName, host, port); dataDir = setupDataDir(settings.get(ElasticSearchConfiguration.EMBEDDED_DATA_PATH_DEFAULT_VALUE)); logger.info("Starting ElasticSearch for cluster {} ", settings.get("cluster.name")); instance = new PluginConfigurableNode(settings, singletonList(Netty4Plugin.class)); instance.start(); Runtime.getRuntime().addShutdownHook(new Thread(() -> { try { if (instance != null) { instance.close(); } } catch (IOException e) { logger.error("Error closing ElasticSearch"); } })); logger.info("ElasticSearch cluster {} started in local mode on port {}", instance.settings().get("cluster.name"), getPort()); }
@AfterClass public static void tearDownAfterClass() throws Exception { node.close(); }
Builder settings = Settings.settingsBuilder() .put("cluster.name", DEFAULT_CLUSTER_NAME) .put("node.local", Boolean.toString(!remoteMode)) .put("path.home", pathHome); node = nodeBuilder().clusterName(clusterName).settings(settings).node(); node.start(); client = node.client(); client.admin().indices() .exists(Requests.indicesExistsRequest(indexKey)).actionGet() .isExists(); if (exists && newdb) { client.admin().indices().prepareDelete(indexKey).execute().actionGet(); client.admin().indices().create( new CreateIndexRequest(indexKey) .settings( Settings.builder() .put("index.number_of_shards", numberOfShards) .put("index.number_of_replicas", numberOfReplicas)
NodeBuilder builder = NodeBuilder.nodeBuilder(); builder.settings(settings.build()); this.node = builder.client(this.clientOnly).local(this.local) .node(); this.client = this.node.client(); ClusterHealthResponse actionGet = this.client.admin().cluster() .prepareHealth().setWaitForYellowStatus().execute().actionGet(); System.out.println("ElasticSearch Health Check " + actionGet);
@Test public void testIndexCreationOptions() throws InterruptedException, BackendException { final int shards = 77; ElasticsearchRunner esr = new ElasticsearchRunner(".", "indexCreationOptions.yml"); esr.start(); CommonsConfiguration cc = new CommonsConfiguration(new BaseConfiguration()); cc.set("index." + INDEX_NAME + ".elasticsearch.create.ext.number_of_shards", String.valueOf(shards)); cc.set("index." + INDEX_NAME + ".elasticsearch.ext.cluster.name", "indexCreationOptions"); ModifiableConfiguration config = new ModifiableConfiguration(GraphDatabaseConfiguration.ROOT_NS, cc, BasicConfiguration.Restriction.NONE); config.set(INTERFACE, ElasticSearchSetup.NODE.toString(), INDEX_NAME); Configuration indexConfig = config.restrictTo(INDEX_NAME); IndexProvider idx = new ElasticSearchIndex(indexConfig); simpleWriteAndQuery(idx); ImmutableSettings.Builder settingsBuilder = ImmutableSettings.settingsBuilder(); settingsBuilder.put("discovery.zen.ping.multicast.enabled", "false"); settingsBuilder.put("discovery.zen.ping.unicast.hosts", "localhost,127.0.0.1:9300"); settingsBuilder.put("cluster.name", "indexCreationOptions"); NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().settings(settingsBuilder.build()); nodeBuilder.client(true).data(false).local(false); Node n = nodeBuilder.build().start(); GetSettingsResponse response = n.client().admin().indices().getSettings(new GetSettingsRequest().indices("titan")).actionGet(); assertEquals(String.valueOf(shards), response.getSetting("titan", "index.number_of_shards")); idx.close(); n.stop(); esr.stop(); }
Settings.Builder settingsBuilder = Settings.builder() .put("cluster.name", "metron") .put("path.logs",logDir.getAbsolutePath()) .put("path.data",dataDir.getAbsolutePath()) .put("path.home", indexDir.getAbsoluteFile()) .put("transport.type", "netty4") node = new TestNode(settingsBuilder.build(), asList(Netty4Plugin.class)); client = node.client(); try { node.start(); } catch (NodeValidationException e) { throw new UnableToStartException("Error starting ES node.", e); client.admin().indices().prepareCreate(m.index) .addMapping(m.docType, m.mapping).get();
private void initNativeClient() { esClient = NodeBuilder.nodeBuilder().client(true).node().client(); boolean indexExists = esClient.admin().indices().prepareExists(indexName).execute().actionGet().isExists(); if (indexExists) { esClient.admin().indices().prepareDelete(indexName).execute().actionGet(); } esClient.admin().indices().prepareCreate(indexName).execute().actionGet(); }
/** * create a elasticsearch node client (embedded elasticsearch) * @param settings */ public ElasticsearchClient(final Settings.Builder settings) { // create a node this.elasticsearchNode = NodeBuilder.nodeBuilder().local(false).settings(settings).node(); // create a client this.elasticsearchClient = elasticsearchNode.client(); }
@Override public Connection connect(Configuration config) throws IOException { log.debug("Configuring Node Client"); ImmutableSettings.Builder settingsBuilder = settingsBuilder(config); if (config.has(ElasticSearchIndex.TTL_INTERVAL)) { String k = "indices.ttl.interval"; settingsBuilder.put(k, config.get(ElasticSearchIndex.TTL_INTERVAL)); log.debug("Set {}: {}", k, config.get(ElasticSearchIndex.TTL_INTERVAL)); } makeLocalDirsIfNecessary(settingsBuilder, config); NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder().settings(settingsBuilder.build()); // Apply explicit Titan properties file overrides (otherwise conf-file or ES defaults apply) if (config.has(ElasticSearchIndex.CLIENT_ONLY)) { boolean clientOnly = config.get(ElasticSearchIndex.CLIENT_ONLY); nodeBuilder.client(clientOnly).data(!clientOnly); } if (config.has(ElasticSearchIndex.LOCAL_MODE)) nodeBuilder.local(config.get(ElasticSearchIndex.LOCAL_MODE)); if (config.has(ElasticSearchIndex.LOAD_DEFAULT_NODE_SETTINGS)) nodeBuilder.loadConfigSettings(config.get(ElasticSearchIndex.LOAD_DEFAULT_NODE_SETTINGS)); Node node = nodeBuilder.node(); Client client = node.client(); return new Connection(node, client); } };
boolean local = config.get(LOCAL_MODE); NodeBuilder builder = NodeBuilder.nodeBuilder(); Preconditions.checkArgument(config.has(INDEX_CONF_FILE) || config.has(INDEX_DIRECTORY), "Must either configure configuration file or base directory"); fis = new FileInputStream(configFile); sb.loadFromStream(configFile, fis); builder.settings(sb.build()); } catch (FileNotFoundException e) { throw new TitanException(e); b.put("indices.ttl.interval", "5s"); builder.settings(b.build()); node = builder.client(clientOnly).data(!clientOnly).local(local).node(); client = node.client();
Client client = node.client(); try { log.debug("waiting for cluster state {} and {} nodes", status.name(), expectedNodeCount); final ClusterHealthResponse healthResponse = client.admin().cluster().prepareHealth() .setWaitForStatus(status).setTimeout(timeout).setMasterNodeTimeout(timeout).setWaitForNodes("" + expectedNodeCount).execute() .actionGet(); final NodesInfoResponse res = client.admin().cluster().nodesInfo(new NodesInfoRequest()).actionGet();
/** * Starts client mode in local Node mode. */ private void initNodeMode() { Objects.requireNonNull(settings.getClusterName()); Objects.requireNonNull(settings.getClusterNodes()); Settings.Builder settingsBuilder = Settings.settingsBuilder(); settingsBuilder.put("discovery.zen.ping.unicast.hosts", Joiner.on(",").join(settings.getClusterNodes())); node = NodeBuilder.nodeBuilder().settings(settingsBuilder) .client(true) .clusterName(settings.getClusterName()) .node(); client = node.client(); logger.info("ElasticSearch data handler starting in LAN mode"); }
/** * Starts an ElasticSearch node. * @return the started node. */ public static Node startEsNode() { Node node = NodeBuilder.nodeBuilder().data(true).settings( Settings.settingsBuilder() .put(ClusterName.SETTING, EsConstants.CLUSTER_NAME) .put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1) .put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0) .put(EsExecutors.PROCESSORS, 1) .put("http.enabled", true) .put("index.percolator.map_unmapped_fields_as_string", true) .put("index.store.type", "mmapfs") .put("path.home", "./data") ).build(); node.start(); return node; }