elasticsearch,Scala,elasticsearch" /> elasticsearch,Scala,elasticsearch" />

Scala 将我的代码与elasticsearch连接

Scala 将我的代码与elasticsearch连接,scala,elasticsearch,Scala,elasticsearch,我在机器中安装了elasticsearch服务器: 这是配置的一部分: transport: { bound_address: inet[/192.168.1.42:9300] publish_address: inet[/192.168.1.42:9300] } http: { bound_address: inet[/192.168.1.42:9200] publish_address: inet[/192.168.1.42:9200] max_content_lengt

我在机器中安装了elasticsearch服务器:

这是配置的一部分:

transport: {
  bound_address: inet[/192.168.1.42:9300]
  publish_address: inet[/192.168.1.42:9300]
}
http: {
  bound_address: inet[/192.168.1.42:9200]
  publish_address: inet[/192.168.1.42:9200]
  max_content_length_in_bytes: 104857600
} 
我尝试从Scala程序和elasticsearch java库连接到此服务器。 这是使用nodeBuilder连接到服务器的代码:

val builder:Node = nodeBuilder()
  .client(true)
  .local(false)
  .loadConfigSettings(false)
  .clusterName("elasticsearch")
  .settings(
      ImmutableSettings.settingsBuilder()
      //.put("network.bind_host", "192.168.1.42")
  .put("network.host", "192.168.1.42")
      .put("transport.tcp.port",9300)
      .put("http.port",9200)
      .build()
).node()

val client:Client = builder.client()
但请接受以下例外情况:

java.lang.ExceptionInInitializerError
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
        at actors.DaasySocketActor$$anonfun$receive$1.applyOrElse(DaasySocketActor.scala:25)
        at akka.actor.ActorCell.invoke(ActorCell.scala:487)
        at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
        at actors.DaasySocketActor.aroundReceive(DaasySocketActor.scala:17)
        at akka.dispatch.Mailbox.run(Mailbox.scala:220)
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
        at akka.actor.ActorCell.invoke(ActorCell.scala:487)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.Mailbox.run(Mailbox.scala:220)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
Caused by: org.elasticsearch.transport.BindTransportException: Failed to bind to [9300]
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:389)    
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
        at org.elasticsearch.transport.TransportService.doStart(TransportService.java:91)
Caused by: org.elasticsearch.transport.BindTransportException: Failed to bind to [9300]
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
        at org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:389)
        at org.elasticsearch.node.internal.InternalNode.start(InternalNode.java:231)
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
        at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)
        at org.elasticsearch.transport.TransportService.doStart(TransportService.java:91)
        at lib.int_elasticsearch$.<init>(int_elasticsearch.scala:55)
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
        at lib.int_elasticsearch$.<clinit>(int_elasticsearch.scala)
        at org.elasticsearch.node.internal.InternalNode.start(InternalNode.java:231)
        ... 12 more
        at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)
Caused by: org.elasticsearch.common.netty.channel.ChannelException: Failed to bind to: /192.168.1.42:9300
java.lang.ExceptionInInitializeError
在akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
在actors.daasystocketactor$$anonfun$receive$1.applyOrElse(daasystocketactor.scala:25)
在akka.actor.ActorCell.invoke(ActorCell.scala:487)
在akka.actor.actor$class.aroundReceive(actor.scala:465)
在akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
at actors.DaasySocketActor.aroundReceive(DaasySocketActor.scala:17)
在akka.dispatch.Mailbox.run(Mailbox.scala:220)
在akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
在akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
在akka.actor.ActorCell.invoke(ActorCell.scala:487)
位于scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
在akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
位于scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
在akka.dispatch.Mailbox.run(Mailbox.scala:220)
位于scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
在akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
在scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)中
位于scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
原因:org.elasticsearch.transport.BindTransportException:绑定到[9300]失败
位于scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
位于org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:389)
位于scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
位于org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
在scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)中
在org.elasticsearch.transport.TransportService.doStart(TransportService.java:91)上
原因:org.elasticsearch.transport.BindTransportException:绑定到[9300]失败
位于org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
位于org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:389)
位于org.elasticsearch.node.internal.InternalNode.start(InternalNode.java:231)
位于org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
位于org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)
在org.elasticsearch.transport.TransportService.doStart(TransportService.java:91)上
在lib.int_elasticsearch$(int_elasticsearch.scala:55)
位于org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)
位于lib.int\u elasticsearch$(int\u elasticsearch.scala)
位于org.elasticsearch.node.internal.InternalNode.start(InternalNode.java:231)
... 还有12个
位于org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)
原因:org.elasticsearch.common.netty.channel.ChannelException:绑定到:/192.168.1.42:9300失败
如果我尝试使用此代码进行连接,效果会很好:

val client:client=new TransportClient() .addTransportAddress(新的InetSocketTransportAddress(“192.168.1.42”,9300))

但我想连接节点客户端,而不是TransportClient

错误是什么?
非常感谢

将主机名和端口从节点客户端剥离。节点客户端本身就是一个节点,因此将主机名/端口设置为另一个节点就是发生冲突的原因(表现在绑定异常中)


一个节点加入集群。传输客户端只连接到一个节点。

好的,但是我的代码和elasticsearch不在同一台服务器上,我的代码如何知道连接到elasticsearch的ip?谢谢
val builder:Node = nodeBuilder()
  .client(true)
  .local(false)
  .loadConfigSettings(false)
  .clusterName("elasticsearch")
  .node()

val client:Client = builder.client()