Время ожидания подключения Cassandra истекло из-за PasswordAuthenticator

Я новичок в Cassandra, у меня проблема с подключением к ней. Вот подробности:

  1. Рабочая среда: Cubie-board A80 под управлением Ubuntu Linaro 14.04 (которую можно загрузить с http://dl.cubieboard.org/model/cc-a80/Image/ubuntu-linaro)

  2. Версия Cassandra: Версия 2.1.7 (с http://downloads.datastax.com/community/dsc-cassandra-2.1.7-bin.tar.gz)

  3. Описание проблемы: после запуска cassandra при использовании cqlsh для подключения к ней (набрав ./cqlsh 192.168.10.26 -u cassandra -p cassandra) время ожидания истекло: Connection error: ('Unable to connect to any servers', {'192.168.10.26': OperationTimedOut('errors=Timed out creating connection, last_host=None',)})

  4. Самопроверка: в файле конфигурации cassandra для listen_address, rpc_address и Broadcast_rpc_address установлено значение 192.168.10.26, native_transport_port — 9042, что по умолчанию, start_native_transport — true. Так же пробовал запустить cqlsh без логина и пароля, выдало: Connection error: ('Unable to connect to any servers', {'192.168.10.26': AuthenticationFailed('Remote end requires authentication.',)}), значит запущена кассандра.

Есть идеи, что произошло? Спасибо.

Обновления:

Попытался указать порт 9042 в команде cqlsh;
Попытался изменить номер порта на 9043;
Попытался проверить порт 9042: в состоянии «LISTEN» и используется java;
Попытался проверить состояние брандмауэра: ufw не установлен

Update_new: проблема сузилась: проблема связана с аутентификатором, то есть, если я использую AllowAllAuthenticator, база данных будет подключена без проблем; если я включу PasswordAuthenticator, время ожидания соединения истекло (с использованием cassandra/cassandra в качестве имени пользователя и пароля). Я знаю, что это странно, точно такая же настройка на моей виртуальной машине не показывает такой проблемы с подключением. Также протестировано в последней стабильной версии 2.2.3.

На данный момент проблема решена: изначально я использовал OpenJDK на этом Cubieboard, затем я удалил OpenJDK и переключил его на Oracle Java, эта проблема решилась сама собой. К сожалению, на данный момент я до сих пор не знаю, почему аутентификация не будет работать с OpenJDK, а с Oracle — нет. Но этот обходной путь может быть полезен для тех, кто использует cassandra на Cubieboard A80.


person X. Zhang    schedule 24.11.2015    source источник
comment
Вы проверили, что брандмауэр вашего сервера cassandra не блокирует порты 9042 и 9160?   -  person Brandon    schedule 24.11.2015
comment
@ Брэндон, спасибо за ваше предложение, но версия ОС, которую я использую на этом новом Cubieboard, даже не имеет установленного ufw.   -  person X. Zhang    schedule 24.11.2015
comment
Просто чтобы убедиться, что никакие переменные env или файлы cqlshrc не мешают, попробуйте указать порт в командной строке cqlsh 192.168.10.26 9042 -u cassandra -p cassandra   -  person Brandon    schedule 24.11.2015
comment
Откуда вы бежите cqlsh? Вы запускаете его с самого сервера cassandra? Или удаленно с другой машины? Какую версию cqlsh вы используете cqlsh --version?   -  person Brandon    schedule 24.11.2015
comment
@ Брэндон, я пробовал как с одной машины, так и с другой, разницы нет. Для cqlsh я использую 5.0.1.   -  person X. Zhang    schedule 26.11.2015
comment
Вы пытались увеличить время ожидания read_request_timeout?   -  person Abhishek Agarwal    schedule 29.11.2015
comment
@AbhishekAgarwal, Да, я сделал, но это не помогает. Это не похоже на проблему с подключением, но похоже, что в этой cubieboard ubuntu пропущены некоторые зависимости, из-за которых аутентификация не удалась.   -  person X. Zhang    schedule 30.11.2015
comment
вы видите какие-либо ошибки в системных журналах, связанные с этим? как в каких-либо ошибках, сообщающих о трудностях чтения из system_auth.users? вы можете увидеть, успешно ли была создана cassandra? В одном из журналов узлов должен быть создан суперпользователь по умолчанию «cassandra».   -  person mikea    schedule 30.11.2015


Ответы (1)


Установите для Broadcast_rpc_address локальный IP-адрес и попробуйте установить для rpc_address значение 0.0.0.0.

person LHWizard    schedule 24.11.2015
comment
В конфигурационном файле указано, что если для rpc_address установлено значение 0.0.0.0, необходимо установить Broadcast_rpc_address. - person X. Zhang; 24.11.2015
comment
Я знаю - все равно попробуйте закомментировать broadcast_rpc_address. По умолчанию это значение не установлено. - person LHWizard; 24.11.2015
comment
Пробовал, но кассандра в этом случае не запускается: Фатальная ошибка конфигурации; невозможно начать. - person X. Zhang; 24.11.2015
comment
Извините моя ошибка. установите Broadcast_rpc_address на локальный IP-адрес и rpc_address на 0.0.0.0. Комментирование broadcast_rpc_address работало в c* 2.0.8, но не в 2.1.7. Есть ли в system.log полезные ошибки? - person LHWizard; 24.11.2015
comment
Просто сделал именно то, что вы сказали, время ожидания при подключении все еще истекло. Файл журнала нормальный, заканчивается прослушиванием комиссионных клиентов .... Также я изменил настройку тайм-аута в кофиге, но это не помогает. - person X. Zhang; 24.11.2015
comment
попробуйте nodetool без указания IP-адреса. попробуйте nodetool с 127.0.0.1 попробуйте netstat, чтобы увидеть, есть ли процесс, прослушивающий 9042. - person LHWizard; 24.11.2015
comment
Пожалуйста, ознакомьтесь с моим новым обновлением, я узнал источник, но до сих пор не знаю причину. - person X. Zhang; 26.11.2015