moshere  
                (Moshe Recanati)
               
                 
              
                  
                    November 9, 2014,  1:06pm
                   
                   
              1 
               
             
            
              Hi, 
I wrote simple program that enters 1000 documents into clean ES cluster. 
While querying the cluster during execution I'm getting Green health all 
the time.
C:\Users\mosher>curl -XGET http://mosher:9200/_cat/indices?pretty=true  
green twitter2 1 0 1000 0 72.7kb 72.7kb
However after stop and start of ES - I'm getting Red status 
C:\Users\mosher>curl -XGET http://mosher:9200/_cat/indices?pretty=true  
red twitter2 1 0
As you can see I'm running with 1 shard and no replication.
My code is below.
Let me know what I'm doing wrong and how to fix it.
Thank you, 
Moshe
// on startup 
Client client = new TransportClient() 
.addTransportAddress(new InetSocketTransportAddress("mosher", 
9300));
try 
{ 
CreateIndexRequestBuilder createIndexRequestBuilder = 
client.admin().indices().prepareCreate("twitter2"); 
createIndexRequestBuilder.execute().actionGet(); 
} 
catch (Exception e) 
{ 
e.printStackTrace(); 
} 
BulkRequestBuilder bulkRequest = client.prepareBulk(); 
int numOfDocs = 1000; 
long startTime = System.currentTimeMillis(); 
System.out.println("Going to add " + numOfDocs); 
// either use client#prepare, or use Requests# to directly build 
index/delete requests 
long internalStartTime = System.currentTimeMillis(); 
for (int i = 0; i < numOfDocs; i++) 
{ 
IndexRequestBuilder index =client.prepareIndex("twitter2", "tweet", "m1"+i); 
index.setSource(jsonBuilder() 
.startObject() 
.field("user", "kimchy" +i) 
.field("postDate", new Date()) 
.field("message", "trying out Elasticsearch"+i) 
.endObject()); 
bulkRequest.add(index); 
if (i % 1000 == 0 ) 
{ 
BulkResponse bulkResponse = bulkRequest.execute().actionGet(); 
bulkRequest = client.prepareBulk(); 
System.out.println ("processed 1000 records from " + (i-1000) + " until  "
i + " at " + (System.currentTimeMillis() - internalStartTime)); 
internalStartTime = System.currentTimeMillis(); 
} 
} 
 
BulkResponse bulkResponse = bulkRequest.execute().actionGet(); 
if (bulkResponse.hasFailures()) 
{ 
BulkItemResponse item[] = bulkResponse.getItems(); 
for (int i = 0; i< item.length; i++) 
{ 
if (item[i].isFailed()) 
{ 
System.out.println ("Error " + item[i].getFailureMessage()); 
} 
}
} 
System.out.println ("Finished entereing " + numOfDocs + " in " + 
(System.currentTimeMillis() - startTime)); 
client.close();
-- 
You received this message because you are subscribed to the Google Groups "elasticsearch" group. 
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com . 
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/1d805126-0f18-40b4-b1d9-95557a18d4da%40googlegroups.com . 
For more options, visit https://groups.google.com/d/optout .
             
            
               
               
               
            
            
           
          
            
              
                moshere  
                (Moshe Recanati)
               
              
                  
                    November 9, 2014,  1:22pm
                   
                   
              2 
               
             
            
              Update 
After couple of seconds or minutes the cluster became green. 
I assume this is after ES stabilized with data,
Thank you
On Sunday, November 9, 2014 3:06:46 PM UTC+2, Moshe Recanati wrote:
Hi, 
I wrote simple program that enters 1000 documents into clean ES cluster. 
While querying the cluster during execution I'm getting Green health all 
the time.
C:\Users\mosher>curl -XGET http://mosher:9200/_cat/indices?pretty=true  
green twitter2 1 0 1000 0 72.7kb 72.7kb
However after stop and start of ES - I'm getting Red status 
C:\Users\mosher>curl -XGET http://mosher:9200/_cat/indices?pretty=true  
red twitter2 1 0
As you can see I'm running with 1 shard and no replication.
My code is below.
Let me know what I'm doing wrong and how to fix it.
Thank you, 
Moshe
// on startup 
Client client = new TransportClient() 
.addTransportAddress(new InetSocketTransportAddress("mosher", 
9300));
try 
{ 
CreateIndexRequestBuilder createIndexRequestBuilder = 
client.admin().indices().prepareCreate("twitter2"); 
createIndexRequestBuilder.execute().actionGet(); 
} 
catch (Exception e) 
{ 
e.printStackTrace(); 
} 
BulkRequestBuilder bulkRequest = client.prepareBulk(); 
int numOfDocs = 1000; 
long startTime = System.currentTimeMillis(); 
System.out.println("Going to add " + numOfDocs); 
// either use client#prepare, or use Requests# to directly build 
index/delete requests 
long internalStartTime = System.currentTimeMillis(); 
for (int i = 0; i < numOfDocs; i++) 
{ 
IndexRequestBuilder index =client.prepareIndex("twitter2", "tweet", 
"m1"+i); 
index.setSource(jsonBuilder() 
.startObject() 
.field("user", "kimchy" +i) 
.field("postDate", new Date()) 
.field("message", "trying out Elasticsearch"+i) 
.endObject()); 
bulkRequest.add(index); 
if (i % 1000 == 0 ) 
{ 
BulkResponse bulkResponse = bulkRequest.execute().actionGet(); 
bulkRequest = client.prepareBulk(); 
System.out.println ("processed 1000 records from " + (i-1000) + " until  "
i + " at " + (System.currentTimeMillis() - internalStartTime)); 
internalStartTime = System.currentTimeMillis(); 
} 
} 
 
BulkResponse bulkResponse = bulkRequest.execute().actionGet(); 
if (bulkResponse.hasFailures()) 
{ 
BulkItemResponse item  = bulkResponse.getItems(); 
for (int i = 0; i< item.length; i++) 
{ 
if (item[i].isFailed()) 
{ 
System.out.println ("Error " + item[i].getFailureMessage()); 
} 
}
} 
System.out.println ("Finished entereing " + numOfDocs + " in " + 
(System.currentTimeMillis() - startTime)); 
client.close();
 
-- 
You received this message because you are subscribed to the Google Groups "elasticsearch" group. 
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com . 
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/81d44823-62c8-40a8-9782-4cc7ddc258f9%40googlegroups.com . 
For more options, visit https://groups.google.com/d/optout .
             
            
               
               
               
            
            
           
          
            
            
              Moshe,
Exactly!
What you might wish to do is add a Wait for Yellow query before doing any 
queries, or a Wait for Green request before doing any updates. That way, 
you can deterministically wait for the appropriate status before continuing.
For example: Loop on the following until it succeeds, some timeout expires 
after repeatedly catching NoNodeAvailableException, or else some other 
serious exception is thrown:
client.admin().cluster().prepareHealth().setTimeout(timeout) 
.setWaitForYellowStatus().execute().actionGet(); 
Hope this helps!
Brian
On Sunday, November 9, 2014 8:22:58 AM UTC-5, Moshe Recanati wrote:
Update 
After couple of seconds or minutes the cluster became green. 
I assume this is after ES stabilized with data,
 
 
-- 
You received this message because you are subscribed to the Google Groups "elasticsearch" group. 
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com . 
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/ecd2f91b-c322-4df8-b411-d47f59f356a4%40googlegroups.com . 
For more options, visit https://groups.google.com/d/optout .