Клиент Accumulo бросает исключение NotServingTabletException

Я использую accumulo в своем проекте (внутри причала), но получаю эту ошибку при попытке запустить свой код

[client.impl.ThriftScanner] Ошибка при получении транспорта на имя хоста: 9997 : NotServingTabletException

Сам Accumulo встал, и я могу подключиться к шеллу - создавать таблицы, вставлять и сканировать.

Спасибо.


person inet123    schedule 24.03.2017    source источник
comment
Какой у Вас вопрос?   -  person Christopher    schedule 26.03.2017
comment
Что может быть причиной исключения NotServingTabletException?   -  person inet123    schedule 26.03.2017


Ответы (1)


Accumulo TabletServers размещает планшеты. Каждый планшет содержит часть строк для таблицы Accumulo.

Похоже, что может быть какая-то проблема, когда планшет не размещается на TabletServer. Когда ваше приложение пытается получить доступ/обновить определенную строку на этом планшете, будет выдано сообщение об ошибке, если этот планшет находится в автономном режиме. Эта ситуация не помешает вам выполнять операции с другими таблицами.

Попробуйте просканировать таблицу, к которой обращается ваше приложение, и посмотрите, не возникает ли ошибка. Кроме того, проверьте Accumulo Monitor или файлы журнала на наличие ошибок.

person elserj    schedule 26.03.2017
comment
Спасибо, но я просканировал каждую таблицу с помощью опции shell scan -t, и она работала со всеми таблицами. У тебя есть другая идея? - person inet123; 26.03.2017
comment
Это полное исключение: ` DEBUG [client.impl.ThriftScanner] Ошибка при получении транспорта на имя хоста: 9997 : NotServingTabletException (extent: TKeyExtent (table: 21 30, endRow: 21 30 3C, prevEndRow: null)` table 21 30 == accumulo.metadata у меня только один слейв и при использовании шелла я смог просканировать эту таблицу.Если это важно - в таблице есть два планшета под одним слейвом (имя хоста:9997) - person inet123; 27.03.2017
comment
Вы всегда видите это исключение в своем клиенте? Или только иногда? Поскольку у вас есть несколько серверов TabletServer, возможно, этот планшет был автоматически перемещен с одного сервера TabletServer на другой (обратите внимание, что это сообщение DEBUG, а не сообщение ERROR). Это естественная и прозрачная операция для вас как пользователя. - person elserj; 27.03.2017
comment
У меня всего один TabletServer... И ошибка возникает несколько раз в секунду. - person inet123; 27.03.2017
comment
Это просто отладочное сообщение, которое отслеживает тот факт, что планшет не существует на этом планшетном сервере в течение некоторого времени, прежде чем клиент обновит свою модель и повторит попытку. Это может произойти, когда планшеты мигрируют или когда планшеты разделяются и становятся новыми планшетами. Ваш, наверное, много делит. Вы можете предварительно разделить таблицу, чтобы предотвратить это. - person Christopher; 27.03.2017