(まず、私はCan not connect to elasticsearch container in dockerを認識しています。私の問題は残ります)TransportClientを使用して公式のDockerイメージで実行されているElasticSearchに接続するにはどうすればよいですか?
私はElasticSearchでタイヤを蹴っています。
私はcluster.name
elasticsearch
として(デフォルトですが、検査が実際にデフォルトでdocker-cluster
することを明らかにドキュメントの主張)を指定し、run the official Docker image from the command line as described in the official documentationをしました:
$ docker run -p 9200:9200 -p 9300:9300 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" -e "xpack.security.enabled=false" -e "cluster.name=elasticsearch" docker.elastic.co/elasticsearch/elasticsearch:5.4.2
あなたは私がしたことに注意しましょうdisabled the X-Pack security, following official documentation。
あなたはhttp://localhost:9200/_cat/healthでブラウザを指しての結果である9300
私はポート9200とポートの両方を公開しましたことに注意しましょう:
自信を持って私を満たしていない1498166019 21:13:39 docker-cluster yellow 1 1 3 3 0 0 3 0 - 50.0%
...しかし、それはあなたが得るものです。私は、official documentationに従って物事を実行すると思います。
いずれにせよ、次の、Javaを使用して、私はそうのようなClient
を構築した時
:あなたは、私がホスト名(transport.host
プロパティに一致する)として127.0.0.1
と9300
などを指定した注意しましょう
this.client = new PreBuiltTransportClient(Settings.builder()
.put("cluster.name", "elasticsearch")
.put("client.transport.sniff", true)
.build())
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
ポート(公開されたポートと一致)。
次に実行します。this.client.prepareGet("argle", "bargle", "1").get();
。私は何かの "ねえ、ダミー、argle
は存在しません"というエラーが表示されることを期待しています。
代わりに、これは恐ろしいことになる:私は間違って何をやっている
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{q00tH2RKTlCkXut03lYHOg}{127.0.0.1}{127.0.0.1:9300}]]
?公式文書のどの部分が間違っていますか?