Ответ 1
Узлы данных хранят данные. Сервер (области) сервера по существу буферизует операции ввода-вывода; данные постоянно хранятся на HDFS (то есть узлах данных). Я не думаю, что создание сервера области на вашем "хозяине" node является хорошей идеей.
Вот упрощенная картина управления регионами:
У вас есть кластер с HDFS (NameNode + DataNodes) с коэффициентом репликации 3 (каждый блок HDFS копируется в 3 разных DataNodes).
Вы запускаете RegionServers на тех же серверах, что и DataNodes. Когда запрос на запись поступает в RegionServer, он сначала записывает изменения в память и фиксирует журнал; то в какой-то момент он решает, что настало время записать изменения в постоянное хранилище на HDFS. Вот в чем заключается локальность данных: поскольку вы запускаете RegionServer и DataNode на том же сервере, первая реплика блока HDFS файла будет записана на один и тот же сервер. Две другие реплики будут записаны, ну, другие DataNodes. В результате RegionServer, обслуживающий регион, почти всегда будет иметь доступ к локальной копии данных.
Что делать, если сбой RegionServer или RegionMaster решил переназначить регион на другой RegionServer (чтобы сохранить кластерный баланс)? Новый RegionServer будет вынужден сначала выполнять удаленное чтение, но как только выполняется сжатие (слияние журнала изменений в данные) - новый файл будет записан в HDFS новым RegionServer, и локальная копия будет создана на RegionServer ( снова, потому что DataNode и RegionServer работают на одном сервере).
Примечание: в случае сбоя RegionServer регионы, ранее назначенные ему, будут переназначены на несколько RegionServers.
Хорошо читает:
-
Том Уайт, "Hadoop, The Definitive Guide" имеет хорошее объяснение архитектуры HDFS. К сожалению, я не читал оригинальную бумагу Google GFS, поэтому я не могу сказать, легко ли это следовать.
-
Google BigTable. HBase - это реализация Google BigTable, и я обнаружил, что описание архитектуры в этой статье легче всего отслеживать.
Вот номенклатурные различия между реализацией Google Bigtable и HBase (от Lars George, "HBase, The Definitive Guide" ):
- HBase - Bigtable
- Регион - планшет
- RegionServer - Сервер планшета
- Флеш - Малое уплотнение
- Незначительное уплотнение - Слияние уплотнения
- Основное уплотнение - основное уплотнение
- Запись журнала вперед - журнал фиксации
- HDFS - GFS
- Hadoop MapReduce - MapReduce
- MemStore - memtable
- HFile - SSTable
- Zookeeper - Chubby