У меня есть кластер hadoop (hdfs, yarn, hbase), и разработчики жалуются на проблемы с производительностью, поэтому я пытаюсь сделать много оптимизаций, но, как новичок в Hbase, меня интересует текущая производительность.
Я разработал быстрый инструмент, который вводит 100 тыс. Предложений в 10 параллельных потоках в таблицу Phoenix (которая имеет ту же структуру, что и производственная таблица) и отображает результаты за 1 неделю.
Мой кластер Hadoop состоит из:
- 2 наменода в HA: 2 ВМ с 2 vCPU и 12 ГБ памяти
- 15 датоданов: физические серверы
- 6 с 48 vCPU и 189 ГБ памяти
- 5 с 40 vCPU и 189 ГБ памяти
- 4 с 8 vCPU и 62 ГБ памяти
- все датододы также являются менеджерами узлов пряжи
- датоданы с 40 и 48 vCPU также являются региональными серверами Hbase
- 3 общих zookeepers для Hdfs, Yarn и Hbase HA: 3 ВМ с 2 vCPU и 8 ГБ памяти
I 'используя Apache Hadoop 2.8.3,Hbase 2.0.0 и Phoenix 5.0.0
Текущие результаты моего инструмента-инжектора (вставка 100 000 предложений в 10 параллельных нитях):
- 57 секунд для лучшего времени (это соответствует ~ 1700 вставок / секунд)
- 10,4 минут для наихудшего времени (соответствует ~ 160 вставок в секунду)
- среднее время 2 минуты (соответствует ~ 1000 вставок /секунд)
Худшее время впрыска соответствует моменту, когда работает много процессов пряжи, поэтому меня это не удивляет. график результатов
Мой вопрос "простой": хорошее соотношение 1000 вставок / секунд?или я должен иметь больше?
Спасибо.