Получить имя экземпляра Accumulo

Я хочу использовать GeoMesa (ГИС-расширение Accumulo) и виртуализировать его с помощью Docker, как в этом репозитории. Теперь я хочу подключиться к экземпляру Accumulo с помощью Java, используя:

 Instance i = new ZooKeeperInstance("docker_instance",zkIP:port);
 Connector conn = i.getConnector(user, new PasswordToken(password));

Соединение не устанавливается и зависает (как и в этот вопрос ). Я могу подключиться к экземпляру ZooKeeper, используя

./zkCli.sh -server ip:port

Так что я думаю, имя_экземпляра неверно. Я использовал тот, который отмечен в репо, связанном первым. Однако я не знаю, где как проверить необходимое instance_name.


Чтобы воспроизвести мою проблему, я сделал настройте сервер цифрового океана со всеми необходимыми зависимостями и accumulo. Я проверил, что подключение к zookeeper возможно с помощью zkCli, и проверил учетные данные с помощью accumulo shell на сервере.

 Instance i = new ZooKeeperInstance("DIGITAL_OCEAN","46.101.199.216:2181");
 // WARN  org.apache.accumulo.core.client.ClientConfiguration  - Found no client.conf in default paths. Using default client configuration values.
 System.out.println("This is reached");
 Connector conn = i.getConnector("root", new PasswordToken("mypassw"));
 System.out.println("This is not reached");

person nik    schedule 18.01.2016    source источник
comment
Имя экземпляра Accumulo — это имя, которое вы указали при запуске accumulo init. Вы можете увидеть это имя на Accumulo Monitor. Вы также не предоставили никакой информации о фактической ошибке (она висит на первой строке кода или на второй?). Вы видите ошибку в конце концов? У вас есть дамп потока из процесса, когда он застрял? Вы увеличили уровень отладки log4j?   -  person elserj    schedule 19.01.2016
comment
Хорошо, спасибо за расположение instance_name — к сожалению, я использовал правильное. По поводу проблемы: На второй команде зависает, но при создании ZooKeeperInstance тоже выдает предупреждение: [main] WARN org.apache.accumulo.core.client.ClientConfiguration - Found no client.conf in default paths. Using default client configuration values.   -  person nik    schedule 19.01.2016
comment
На самом деле это происходит из объекта ClientConfiguration, который ZKI неявно создает для вас. Вы можете избавиться от этого, используя конструктор ZKI, который принимает объект ClientConfiguration (и устанавливает строку instanceName и zookeepers для этого объекта).   -  person elserj    schedule 20.01.2016


Ответы (2)


В качестве шага по устранению неполадок вы можете извлечь имя экземпляра с помощью HdfsZooInstance.getInstance().getInstanceName() или путем прямого подключения к ZooKeeper и перечисления имен экземпляров с помощью ls /accumulo/instances/.

person Christopher    schedule 19.01.2016
comment
Подключение к zookeeper и использование ls /accumulo/instances / работает. К сожалению, это имя instance_name, которое я ожидал, поэтому должна быть другая проблема с моим подключением. - person nik; 19.01.2016

Есть несколько простых способов получить instance_name: Ether просто посмотрите вверху страницы состояния накопления, как указано в комментариях elserj, или используйте zkCli для подключения к Zookeeper и используйте ls /accumulo/instances /. > как ответил Кристофер.

Однако мне не удалось подключиться к accumulo с помощью обычного Java-коннектора. Тем не менее мне удалось подключиться к Accumulo с помощью Настройки прокси-сервера, что является правильным решением для меня, даже если я все еще хотел бы найти проблему.

person nik    schedule 19.01.2016