2015-08-19 2 views
1

Мы используем Map для записи данных в HBase. Поскольку у нас есть какое-то форматирование, мы внедрили собственный редуктор, расширив TableReducer. Этот пользовательский редуктор ведет себя по-разному в среде производства и разработки. Получение следующей ошибкеHBase-Mapreducer, оптимальное количество редукторов при использовании TableReducer

Ошибка: org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Ошибка 659 действий: RegionTooBusyException: 659 раз,

От here, я понял, что промывка не выполняется должным образом. Однако то же самое отлично работает в среде dev.

Наряду с вышеуказанным вариантом, я чувствую, что настройка количества редукторов также может повлиять на то, сколько данных отправлено на сервер региона.

Мы используем соль для разметки ключей строк среди серверов региона. На данный момент соль составляет 20 м, а количество региональных серверов - 60. Если соль выбирается равной количеству серверов региона, чтобы равномерно распределять записи? Если нет, то как определить оптимальное значение количества редукторов при загрузке данных в Hbase.

Также, как правило, максимальное количество подключений, разрешенных на стороне клиента, для взаимодействия с Hbase. Здесь мы используем API-редуктор Map, но в целом мы обрабатываем клиентское соединение с Hbase, максимальное число клиентских подключений может играть важную роль. Заранее благодарим за помощь

ответ

0

API-интерфейс Hbase-mapreduce сам определяет количество редукторов, равное количеству региональных серверов. This, база кода подтверждает. Таким образом, проблема заключалась в том, что wehn мы записываем сокращение нашей карты, мы даем количество редукторов значение, которое отличается от значения по умолчанию. Итак, похоже, значение по умолчанию здесь shoyuld хорошо работает, если у нас нет конкретного требования.

Смежные вопросы