ElasticSearch无法绑定公共IP地址

时间:2016-07-12 06:33:31

标签: elasticsearch jvm

使用apt-get elasticsearch(版本5.0.0-alpha4)并使用Oracle JRE 8运行。

它可以正常使用本地IP地址绑定。

curl 127.0.0.1:9200

{
  "name" : "Deadly Ernest",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "5.0.0-alpha4",
    "build_hash" : "3f5b994",
    "build_date" : "2016-06-27T16:23:46.861Z",
    "build_snapshot" : false,
    "lucene_version" : "6.1.0"
  },
  "tagline" : "You Know, for Search"
}

但是当我尝试绑定公共IP地址时,它失败了。

取消注释并修改/etc/elasticsearch/elasticsearch.yml

network.host: 139.129.221.xxx

当我尝试使用sudo -i service elasticsearch restart启动服务时似乎没问题* Starting Elasticsearch Server ...done.

日志显示服务器无法正常启动。

[2016-07-12 14:23:18,359][INFO ][node                     ] [Algrim the Strong] starting ...
[2016-07-12 14:23:18,471][INFO ][transport                ] [Algrim the Strong] publish_address {139.129.221.xxx:9300}, bound_addresses {139.129.221.xxx:9300}
[2016-07-12 14:23:18,492][ERROR][bootstrap                ] [Algrim the Strong] Exception
java.lang.RuntimeException: bootstrap checks failed
initial heap size [268435456] not equal to maximum heap size [2147483648]; this can cause resize pauses and prevents mlockall from locking the entire heap
please set [discovery.zen.minimum_master_nodes] to a majority of the number of master eligible nodes in your cluster
        at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:125)
        at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:85)
        at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:65)
        at org.elasticsearch.bootstrap.Bootstrap$5.validateNodeBeforeAcceptingRequests(Bootstrap.java:178)
        at org.elasticsearch.node.Node.start(Node.java:373)
        at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:193)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:252)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:96)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:91)
        at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:91)
        at org.elasticsearch.cli.Command.main(Command.java:53)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:70)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:63)
        Suppressed: java.lang.IllegalStateException: initial heap size [268435456] not equal to maximum heap size [2147483648]; this can cause resize pauses and prevents mlockall from locking the entire heap
                at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
                at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
                at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
                at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
                at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
                at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
                at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
                at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
                at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:126)
                ... 13 more
        Suppressed: java.lang.IllegalStateException: please set [discovery.zen.minimum_master_nodes] to a majority of the number of master eligible nodes in your cluster
                at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
                at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
                at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
                at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
                at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
                at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
                at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
                at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
                at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:126)
                ... 13 more
[2016-07-12 14:23:18,528][INFO ][node                     ] [Algrim the Strong] stopping ...
[2016-07-12 14:23:18,566][INFO ][node                     ] [Algrim the Strong] stopped
[2016-07-12 14:23:18,566][INFO ][node                     ] [Algrim the Strong] closing ...
[2016-07-12 14:23:18,595][INFO ][node                     ] [Algrim the Strong] closed

1 个答案:

答案 0 :(得分:0)

经过多次尝试,我终于通过以下配置做到了。

/etc/elasticsearch/jvm.options

-Xms2g
-Xmx2g

/etc/elasticsearch/elasticsearch.yml

network.host: 139.129.221.xxx
http.port: 9200
discovery.zen.minimum_master_nodes: 1

然后运行sudo service elasticsearch restart以启动elasticsearch。