Hi,
first of all, thanks for the "beauty" you put into ElasticSearch.
I am an absolute beginner with ElasticSearch, so forgive me if I
ask trivial questions (but I did not find the answer on this list
or on the documentation).
I am using ElasticSearch v0.5.1 with an empty configuration file.
I am running a single/local node and learning how to use the Java
API to interact with it.
Everything works fine with:
Server server = serverBuilder().settings(settingsBuilder()).server();
But, if I try to set build the server setting node.data to false:
Server server = serverBuilder().settings(settingsBuilder()
.put("node.data", false))
.server();
I have this exception when I try to add something to an index:
Exception in thread "main"
org.elasticsearch.action.PrimaryNotStartedActionException: [twitter][2]
Timeout waiting for [1m]
at
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$4.onTimeout(TransportShardReplicationOperationAction.java:301)
at
org.elasticsearch.cluster.service.InternalClusterService$1$1.run(InternalClusterService.java:96)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Not sure that I fully understand. Is the server you start the only one you
have in the cluster? If you set it with node.data set to false, then there
will be no node/server to allocated the indices to.
If it is not, and you started other instances of elasticsearch, then it
might be a discovery problem where the embedded server you started can't
discover the rest of the cluster. It should print in the console/logs if it
discovered or not. If it did not, try and pass the following system
property: -Djava.net.preferIPv4Stack=true (I really hope to get read of this
soon).
Hi,
first of all, thanks for the "beauty" you put into Elasticsearch.
I am an absolute beginner with Elasticsearch, so forgive me if I
ask trivial questions (but I did not find the answer on this list
or on the documentation).
I am using Elasticsearch v0.5.1 with an empty configuration file.
I am running a single/local node and learning how to use the Java
API to interact with it.
Everything works fine with:
Server server = serverBuilder().settings(settingsBuilder()).server();
But, if I try to set build the server setting node.data to false:
Server server = serverBuilder().settings(settingsBuilder()
.put("node.data", false))
.server();
I have this exception when I try to add something to an index:
Exception in thread "main"
org.elasticsearch.action.PrimaryNotStartedActionException: [twitter][2]
Timeout waiting for [1m]
at
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$4.onTimeout(TransportShardReplicationOperationAction.java:301)
at
org.elasticsearch.cluster.service.InternalClusterService$1$1.run(InternalClusterService.java:96)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Not sure that I fully understand. Is the server you start the only one
you have in the cluster? If you set it with node.data set to false, then
there will be no node/server to allocated the indices to.
No, the server I start is not the only one I have in the cluster.
I start another one on the same machine using bin/elasticsearch.
If it is not, and you started other instances of elasticsearch, then it
might be a discovery problem where the embedded server you started can't
discover the rest of the cluster. It should print in the console/logs if
it discovered or not. If it did not, try and pass the following system
property: -Djava.net.preferIPv4Stack=true (I really hope to get read of
this soon).
Yes, this worked. I need to use -Djava.net.preferIPv4Stack=true when
I start bin/elasticsearch and when I execute the code which is using
the Java APIs.
Can you explain me this issue/problem?
Is it because of IPv6 and IPv4 are enabled on the same network
interface?
Not sure that I fully understand. Is the server you start the only one you
have in the cluster? If you set it with node.data set to false, then there
will be no node/server to allocated the indices to.
No, the server I start is not the only one I have in the cluster.
I start another one on the same machine using bin/elasticsearch.
If it is not, and you started other instances of elasticsearch, then it
might be a discovery problem where the embedded server you started can't
discover the rest of the cluster. It should print in the console/logs if it
discovered or not. If it did not, try and pass the following system
property: -Djava.net.preferIPv4Stack=true (I really hope to get read of this
soon).
Yes, this worked. I need to use -Djava.net.preferIPv4Stack=true when
I start bin/elasticsearch and when I execute the code which is using
the Java APIs.
Can you explain me this issue/problem?
Is it because of IPv6 and IPv4 are enabled on the same network
interface?
Yes, there are problems with the jgroups discovery module when not
explicitly setting it. The bin/elasticsearch script sets it automatically,
so any client needs to set it as well. I hope to remove the need for this
once I upgrade to the next version of jgroups.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.