2015-02-08 4 views
2

Когда я пытаюсь подключиться к накопителю от java-клиента, он терпит неудачу. Я использую «root» пользователя, но изменил пароль. Я отлаживал свой код, на самом деле получаю правильное имя пользователя и пароль, то же самое я использую для входа в оболочку.ThriftSecurityException (пользователь: root, код: BAD_CREDENTIALS)

Я прочитал на некоторых других сайтах, что мне нужно установить trace.user и trace.password в моем файле accumulo-site.xml, поэтому я сделал это и перезапустил накопитель. К сожалению, это ничего не изменило.

Когда я пытаюсь соединиться с Java, эти важные строки из стека:

Caused by: org.apache.accumulo.core.client.AccumuloSecurityException: Error BAD_CREDENTIALS for user root - Username or Password is Invalid 
Caused by: ThriftSecurityException(user:root, code:BAD_CREDENTIALS) 

С моей accumulo консоли, я вижу это:

08 15:44:06,0544 tserver:michael-GA-890GPA-UD3H 4 
ERROR 
ThriftSecurityException(user:root, code:BAD_CREDENTIALS) 

Когда я смотрю через мою accumulo logs Я просто вижу одно и то же исключение, и его стек печатается каждую секунду.

Я просмотрел справочник по накопителю и не смог найти ничего, что мне не хватает. Поиск google и поиск SO также не помогли мне.

Кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

+0

Если у кого-то еще есть эта проблема, я нашел способ обойти ее. Я просто создал нового пользователя в моей накопительной оболочке с минимальными разрешениями, и я использую это для своих подключений. Я бы по-прежнему был благодарен за ответ на этот вопрос, поскольку сообщения об ошибках продолжают наращиваться в моих журналах. – msknapp

+0

Мне также пришлось сделать «setauths -s public -u », чтобы дать новому пользователю соответствующие разрешения. – msknapp

ответ

1

В зависимости от версии, которую вы используете, у вас также может быть trace.token.property.password, определенный в файле accumulo-site.xml, который является заменой trace.password. > = 1.6.0 введено свойство trace.token.property.password. Если оба свойства и trace.password присутствуют в конфигурации, trace.token.property.password будет иметь приоритет над trace.password.

Посмотрите на файл $ ACCUMULO_LOG_DIR/tracer_ $ hostname.debug.log, у вас, вероятно, будут многочисленные исключения.

«Правильный» способ (читайте так: как вы хотите сделать это в производственной среде) для настройки трассировщика - это создать таблицу «трассировки» как «root», создать пользователя «трассировки», и дать пользователям «trace» READ, WRITE и ALTER_TABLE разрешения в таблице «trace». Затем обновите trace.user и trace.token.property.password в файле accumulo-site.xml.

+0

спасибо, я должен был упомянуть в своем оригинальном посте, что я также изменил trace.token.property.password, чтобы иметь правильный пароль. Я также просто укоренил «публичные» разрешения. Исключение все равно нарастает один раз в секунду в моих журналах. Может это из-за специальных символов в моем пароле? У меня есть # и! в моем пароле. – msknapp

+0

Разрешения не должны иметь значения и не должны содержать специальных символов в пароле. – elserj

+2

После много экспериментов я считаю, что восклицательный знак в моем пароле был виновником.Я изменил свой пароль на простой, обновил файл сайта, и он сработал. Я попытался изменить его, но он не позволил мне создать пароль с восклицательным знаком в нем, накопитель создает исключение, говоря, что событие не было найдено. Однако, когда вы сначала создаете пользователя root, вы можете уйти с восклицательным знаком в своем пароле, и именно так я попал в эту ситуацию. Ваша рекомендация о создании отдельного пользователя с соответствующими разрешениями также работала для меня. – msknapp

1

Не уверен, что если вы все еще хотите, решение или нет, то, что помогло мне изменяет значение trace.token.property.password для правильного пароля, то есть, значение instance.secret для trace.user «корень» в accumulo-site.xml файле.

Или вы можете открыть оболочку acccumulo с помощью пользователя root и создать нового пользователя внутри оболочки, а затем обновить значения как пользователя трассировки, так и текущего пароля.