gpt4 book ai didi

docker - Docker的elasticsearch 5.5.3 Java客户端API NoNodeAvailableException

转载 作者:行者123 更新时间:2023-12-02 20:10:20 25 4
gpt4 key购买 nike

我从Install Elasticsearch with Docker下载了图像
并运行以下命令来启动:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.5.3

使用 Transport Client进行访问。
Settings settings = Settings.builder()
.put("cluster.name", "docker-cluster").build();
TransportClient client = new PreBuiltTransportClient(settings);
client.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress(my-elastic, 9300)));

我什么也没做,但是出现了NoNodeAvailableException错误:
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{9VJdNJv9S7O3Pchx2z2wEg}{my-elastic}{192.168.99.100:9300}]]

我应该怎么做才能解决这个问题?

启动日志:
my-elastic               | [2017-11-01T07:45:52,040][INFO ][o.e.n.Node               ] [] initializing ...
my-elastic | [2017-11-01T07:45:52,178][INFO ][o.e.e.NodeEnvironment ] [h-M1oJa] using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/sda1)]], net usable_space [8.3gb], net total_space [17.8gb], spins? [possibly], types [ext4]
my-elastic | [2017-11-01T07:45:52,179][INFO ][o.e.e.NodeEnvironment ] [h-M1oJa] heap size [1.9gb], compressed ordinary object pointers [true]
my-elastic | [2017-11-01T07:45:52,184][INFO ][o.e.n.Node ] node name [h-M1oJa] derived from node ID [h-M1oJaUTY-G0ezl-89-cw]; set [node.name] to override
my-elastic | [2017-11-01T07:45:52,185][INFO ][o.e.n.Node ] version[5.5.2], pid[1], build[b2f0c09/2017-08-14T12:33:14.154Z], OS[Linux/4.4.52-boot2docker/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_141/25.141-b15]
my-elastic | [2017-11-01T07:45:52,185][INFO ][o.e.n.Node ] JVM arguments [-Xms2g, -Xmx2g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j.skipJansi=true, -XX:+HeapDumpOnOutOfMemoryError, -Des.path.home=/usr/share/elasticsearch]
my-elastic | [2017-11-01T07:45:54,225][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [aggs-matrix-stats]
my-elastic | [2017-11-01T07:45:54,225][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [ingest-common]
my-elastic | [2017-11-01T07:45:54,225][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [lang-expression]
my-elastic | [2017-11-01T07:45:54,225][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [lang-groovy]
my-elastic | [2017-11-01T07:45:54,225][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [lang-mustache]
my-elastic | [2017-11-01T07:45:54,225][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [lang-painless]
my-elastic | [2017-11-01T07:45:54,226][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [parent-join]
my-elastic | [2017-11-01T07:45:54,226][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [percolator]
my-elastic | [2017-11-01T07:45:54,226][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [reindex]
my-elastic | [2017-11-01T07:45:54,226][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [transport-netty3]
my-elastic | [2017-11-01T07:45:54,226][INFO ][o.e.p.PluginsService ] [h-M1oJa] loaded module [transport-netty4]
my-elastic | [2017-11-01T07:45:54,226][INFO ][o.e.p.PluginsService ] [h-M1oJa] no plugins loaded
my-elastic | [2017-11-01T07:45:57,851][INFO ][o.e.d.DiscoveryModule ] [h-M1oJa] using discovery type [zen]
my-elastic | [2017-11-01T07:45:59,062][INFO ][o.e.n.Node ] initialized
my-elastic | [2017-11-01T07:45:59,062][INFO ][o.e.n.Node ] [h-M1oJa] starting ...
my-elastic | [2017-11-01T07:45:59,376][INFO ][o.e.t.TransportService ] [h-M1oJa] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
my-elastic | [2017-11-01T07:46:02,520][INFO ][o.e.c.s.ClusterService ] [h-M1oJa] new_master {h-M1oJa}{h-M1oJaUTY-G0ezl-89-cw}{dYFfXS4vToOMMfAEWy57ig}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
my-elastic | [2017-11-01T07:46:02,588][INFO ][o.e.h.n.Netty4HttpServerTransport] [h-M1oJa] publish_address {172.18.0.8:9200}, bound_addresses {[::]:9200}
my-elastic | [2017-11-01T07:46:02,591][INFO ][o.e.n.Node ] [h-M1oJa] started

我可以使用Postman访问 http://192.168.99.100:9200
{
"name": "-v9MHhY",
"cluster_name": "docker-cluster",
"cluster_uuid": "Ig6tY10oSc6hAbpLqo9fcg",
"version": {
"number": "5.5.3",
"build_hash": "9305a5e",
"build_date": "2017-09-07T15:56:59.599Z",
"build_snapshot": false,
"lucene_version": "6.6.0"
},
"tagline": "You Know, for Search"
}

telnet 192.168.99.100:9200是可以的。
telnet 192.168.99.100:9300是可以的。
telnet可以访问这两个端口。

我正在使用spring boot2.0.0M5。 elasticsearch的默认版本是5.5.3。

最佳答案

在elasticsearch.yml上配置network.host: 0.0.0.0常见错误:

  • 忘记在机器上定义network.host
  • cluster.name已更改
  • port 9300
  • 防火墙问题

    引用:
    network.host

    The network.host setting explained in Commonly used network settings is a shortcut which sets the bind host and the publish host at the same time. In advanced used cases, such as when running behind a proxy server, you may need to set these settings to different values:

    network.bind_host

    This specifies which network interface(s) a node should bind to in order to listen for incoming requests. A node can bind to multiple interfaces, e.g. two network cards, or a site-local address and a local address. Defaults to network.host.

    network.publish_host

    The publish host is the single interface that the node advertises to other nodes in the cluster, so that those nodes can connect to it. Currently an Elasticsearch node may be bound to multiple addresses, but only publishes one. If not specified, this defaults to the “best” address from network.host, sorted by IPv4/IPv6 stack preference, then by reachability. If you set a network.host that results in multiple bind addresses yet rely on a specific address for node-to-node communication, you should explicitly set network.publish_host.


    Network Settings

    network.host

    The node will bind to this hostname or IP address and publish (advertise) this host to other nodes in the cluster. Accepts an IP address, hostname, a special value, or an array of any combination of these.

    Defaults to local.


    HTTP-Settings

    http.bind_host

    The host address to bind the HTTP service to. Defaults to http.host (if set) or network.bind_host.

    http.publish_host

    The host address to publish for HTTP clients to connect to. Defaults to http.host (if set) or network.publish_host.

    http.host

    Used to set the http.bind_host and the http.publish_host Defaults to http.host or network.host.

  • 关于docker - Docker的elasticsearch 5.5.3 Java客户端API NoNodeAvailableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47050107/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com