Электронная почта автора статьи: [email protected] Адрес: Хуэйчжоу, Гуандун
▲ Цель этой главы
⚪ Освоить базовую структуру Hbase;
⚪ Освойте процесс чтения и записи Hbase;
⚪ Освоить проектирование и оптимизацию Hbase;
1. Базовая структура
1. HR-регион
1. В HBase таблица разбивается на один или несколько HR-регионов по направлению ключа строки.
2. После разделения каждый HR-регион будет передан для управления определенному HR-региональному серверу.
3. Таблица будет содержать как минимум один HR-регион и может содержать несколько HR-регионов.
4. В HBase ключи строк упорядочены, поэтому сегментация выполняется от направления ключей строк, поэтому данные между HR-регионами не пересекаются.
5. Так как HRegionServer будет передан в управление HRegionServer, а данные между HRegion не пересекаются, гарантируется, что запросы не будут концентрироваться на каком-то одном узле, а будут распределяться по разным узлам.
6. С течением времени объем данных, управляемых HRegion, будет продолжать увеличиваться, и при выполнении указанных условий они будут автоматически разделены.
7. Каждый HRRegion содержит один или несколько HStore, а количество HStore определяется количеством семейств столбцов.
8. Каждый HStore будет содержать 1 memStore и от 0 до нескольких StoreFile/HFile.
2. Роль смотрителя зоопарка
1. В HBase Zookeeper выступает в роли центра регистрации.
2. Когда HBase запустится, он автоматически зарегистрирует узел /hbase в Zookeeper.
3. Когда Active HMaster запустится, он автоматически зарегистрирует временный узел /hbase/master в Zookeeper — когда Active HMaster выйдет из строя, этот временный узел исчезнет, и Zookeeper выберет самый ранний зарегистрированный узел из резервного узла HMasters, чтобы переключиться в активное состояние. .
4. Когда Backup HMaster запускается, он автоматически регистрирует временный дочерний узел на узле /hbase/backup-masters Zookeeper.
5. При запуске HRegionServer также автоматически регистрирует дочерние узлы в узле Zookeeper /hbase/rs.
3. ХМастер
1. В HBase пользователям разрешено запускать HMaster на любом узле, где установлен HBase, а количество HMaster теоретически не ограничено.
2. Команда запуска HMaster:
hbase-daemon.sh мастер запуска
3. В HBase, если запущено несколько HMaster, HMasters будут разделены на активные и резервные состояния.
4. Если запущено несколько HMaster, HMaster, зарегистрированный первым в Zookeeper, станет активным, а HMaster, зарегистрированный в Zookeeper позже, станет резервным.
5. После того как Active HMaster получит запрос, ему необходимо рассмотреть возможность синхронизации данных с другими Backup HMaster. Чем больше узлов синхронизировано, тем ниже будет эффективность.
6. Поэтому в HBase, хотя количество HMaster'ов в теории не ограничено, на практике количество HMaster'ов вообще не превышает 3: 1 Active HMaster+2 Backup HMaster'а.
7. Активный HMaster будет отслеживать /h в Zookeeper в режиме реального времени.