Учитывая приложение, использующее JavaAPI TransportClient от ElasticSearch, я хочу использовать собственный файл конфигурации elasticsearch.yml
(разрешенный InternalSettingsPreparer
) в пути класса для подключения к кластеру через транспорт.ElasticSearch Java API TransportClient адрес в файле конфигурации
На данный момент у меня есть следующее содержание:
cluster:
name: elasticsearch # would be ${es.cluster.name}
network:
host: localhost
transport_address: localhost:9301 # would be ${es.network.trasport}
и инициализацию клиента:
TransportClient client = new TransportClient();
, который дает мне исключение:
13/12/16 14:04:40 INFO elasticsearch.plugins: [Hanna Levy] loaded [], sites []
org.elasticsearch.client.transport.NoNodeAvailableException: No node available
Но когда я добавляю следующее line
client.addTransportAddress(new InetSocketTransportAddress("localhost", 9301));
вещи начинают работать должным образом.
Мне интересно, есть ли способ настроить транспортные адреса из стандартного формата файла конфигурации и не изобретать колесо, имея конфигурационный файл для файла конфигурации?
не работает еще: org.elasticsearch.client.transport.NoNodeAvailableException: Нет узла доступного \t на org.elasticsearch.client.transport.TransportClientNodesService.execute (TransportClientNodesService.java:212) –
Я испытал это локально и имел аналогичную ошибку, пока я не изменил порт как диапазон: 9300-9400 Я проверил документацию, а параметр порта должен быть в диапазоне - http://www.elasticsearch.org/guide/en/elasticsearch/reference/ current/modules-transport.html По умолчанию используется значение 9300-9400, которого должно быть достаточно для вас. Таким образом, вы можете либо поместить значение 9300-9400, либо удалить его, так как уже используете значение по умолчанию. –
По-прежнему нет успеха: // код Java: TransportClient client = new TransportClient(); client.admin(). Cluster(). PrepareState(). Execute(). ActionGet(); // конфиг/elastisearch.yml cluster.name: elasticsearch network.host: локальный network.transport.tcp.port: 9300-9400 еще не дает "Нет узла доступного" исключение P.S. es-0.90.7 –