Ошибка агента Dataxtax

При добавлении существующего кластера в OpsCenter получаю сообщение об ошибке:

ERROR: Agent for XXX.XXX.XXX.XXX was unable to complete operation (http://XXX.XXX.XXX.XXX:61621/snapshots/pit/properties?): java.lang.IllegalArgumentException: No implementation of method: :make-reader of protocol: #'clojure.java.io/IOFactory found for class: nil

На агенте ошибка:

java.lang.IllegalArgumentException: No implementation of method: :make-reader of protocol: #'clojure.java.io/IOFactory found for class: nil
at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541)
at clojure.java.io$fn__8551$G__8546__8558.invoke(io.clj:73)
at clojure.java.io$reader.doInvoke(io.clj:106)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$slurp.doInvoke(core.clj:6278)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at opsagent.backups.pit$read_properties.invoke(pit.clj:68)
at opsagent.backups.pit$enabled_QMARK_.invoke(pit.clj:106)
at clojure.core$eval37.invoke(NO_SOURCE_FILE:107)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at clojure.lang.Compiler.eval(Compiler.java:6609)
at clojure.lang.Compiler.eval(Compiler.java:6582)
at clojure.core$eval.invoke(core.clj:2852)
at opsagent.opsagent$post_interface_startup.doInvoke(opsagent.clj:102)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at opsagent.conf$handle_new_conf.invoke(conf.clj:198)
at opsagent.messaging$message_callback$fn__12316.invoke(messaging.clj:52)
at opsagent.messaging.proxy$java.lang.Object$StompConnection$Listener$7f16bc72.onMessage(Unknown Source)
at org.jgroups.client.StompConnection.notifyListeners(StompConnection.java:324)
at org.jgroups.client.StompConnection.run(StompConnection.java:274)
at java.lang.Thread.run(Thread.java:745)

И создание кластера не удалось. Также я получаю эту ошибку во время запуска. Я пробовал переустановить агент, но это не помогло.

Версия агента DataStax: 5.1.0

Оперцентр версии 5.1.0

root@node1:~# java -version
java version "1.7.0_75"
OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~deb7u1)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
root@node1:~# 

Содержимое address.yaml

stomp_interface: "YYY.YYY.YYY.YYY"

Содержимое opscenterd.conf

[webserver]
port = 8888
interface = 0.0.0.0
use_ssl = false
[logging]
level = INFO

‹имя кластера›.conf отсутствует, так как кластер не добавлен


person Maxiko    schedule 03.03.2015    source источник
comment
Как вы установили Cassandra (deb/rpm или tarball)?   -  person arre    schedule 03.03.2015
comment
Не могли бы вы добавить в свой пост следующие файлы: ‹имя кластера›.conf, address.yaml и opscenter.conf. В OpsCenter 5.1 были внесены некоторые изменения, одним из которых было удаление бережливости из агента, это означает, что в файл конфигурации внесены некоторые последующие изменения.   -  person markc    schedule 03.03.2015
comment
Итак, из вашей конфигурации мы видим, что ssl не настроен, так что это хорошо. Как было сказано выше, как вы установили opscenter и агентов?   -  person markc    schedule 04.03.2015
comment
Я установил OpsCenter и агенты с сайта debian.datastax.com. На других узлах все ок.   -  person Maxiko    schedule 04.03.2015


Ответы (2)


Проблема, с которой сталкивается агент, заключается в том, что он находит вашу установку DSE на этом узле. Когда он не может найти DSE, он не может обновить файл свойств архивации и вывести ошибки.

Это сообщение об ошибке, к сожалению, ужасно бесполезно. Я создал заявку на исправление сообщения об ошибке (к сожалению, она закрытая, но вы можете использовать этот номер заявки при обсуждении проблемы с DataStax: OPSC-4826)

В качестве временного решения попробуйте установить cassandra_install_location в файле address.yaml на этом узле. После настройки address.yaml отмените агент, и вы можете повторить эту операцию.

Вы можете найти документ со списком этого и других элементов конфигурации address.yaml здесь: http://www.datastax.com/documentation/opscenter/5.1/opsc/configure/agentAddressConfiguration.html

person Dio    schedule 17.03.2015
comment
cassandra_install_location требуется при установке Cassandra из архива. Но в моем случае cassandra устанавливается из deb. - person Maxiko; 25.03.2015
comment
Привет @Maxiko, можешь как-нибудь попробовать настроить? Спасибо. - person Dio; 25.03.2015
comment
Также полезно знать, чтобы убедиться, что удостоверение, под которым работает агент, имеет разрешения на чтение/запись в файл свойств архивирования cassandra. - person Dio; 27.03.2015

Я думаю, что проблема будет связана с вашей установкой Java. Я считаю, что вам понадобится Oracle Java, а не OpenJDK.

Это сработало для меня:

ubuntu:~$ sudo add-apt-repository ppa:webupd8team/java
ubuntu:~$ sudo apt-get update && sudo apt-get install oracle-java7-installer oracle-java7-set-default
person LHWizard    schedule 05.03.2015
comment
У меня есть 4 подобных узла. На 1-м узле ошибка, а на остальных все ок! - person Maxiko; 06.03.2015
comment
На веб-сайте Datastax (datastax.com/documentation/opscenter/5.1 /opsc/install/) написано: Предварительные условия Доступ с правами root или sudo при установке в качестве системной службы и при установке отсутствующих системных зависимостей. Последняя версия Oracle Java SE Runtime Environment 7, а не OpenJDK. См. Установка Oracle JRE. - person LHWizard; 06.03.2015
comment
ты обновил все 4 узла? и java -версия показывает что-то вроде ubuntu@localhost:~$ java -version java version "1.7.0_65" Java(TM) SE Runtime Environment (build 1.7.0_65-b17) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) - person LHWizard; 12.03.2015
comment
Я обновил только одну, потому что на другой ноде все ок! - person Maxiko; 14.03.2015