Должен ли сервер региона HBase и узел данных Hadoop на одном компьютере?

Извините, что у меня нет ресурса, чтобы настроить кластер для его тестирования, мне просто интересно знать:

  1. можно ли развернуть сервер региона hbase на отдельном компьютере, отличном от компьютера узла данных hadoop? Наверное, ответ "да", но я не уверен.

  2. хорошо или плохо развертывать сервер региона hbase и узел данных hadoop на разных машинах?

  3. при вводе некоторых данных в HBase, где эти данные в конечном итоге хранится в, Data node или region server? Я думаю, это узел данных, но что такое StoreFile и HFile в region server, разве это не физический файл для хранения наших данных?

спасибо!

2 ответов


  1. RegionServers должны всегда работать вместе с DataNodes в распределенных кластерах, если вы хотите достойную производительность.

  2. очень плохо, это будет работать против принципа локальности данных (Если вы хотите узнать немного больше о локальности данных, проверьте это:http://www.larsgeorge.com/2010/05/hbase-file-locality-in-hdfs.html)

  3. фактические данные будут храниться в HDFS (DataNode), RegionServers ответствены обслуживание и управление регионами.

для получения дополнительной информации об архитектуре HBase, пожалуйста, проверьте это отличное сообщение из блога Ларса:http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html

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


подробнее о ответ:

  1. RegionServers должны всегда работать вместе? DataNodes в распределенных кластерах, если вы хотите достойную производительность."

Я не уверен, как кто-нибудь будет вставлять термин вместе с, так что давайте попробуем быть даже больше точность:

  1. что делает любой физический сервер сервером" XYZ", так это то, что он работает под управлением программа, называемая демоном (подумайте" вечно работающая фоновая программа обработки событий");
  2. что делает "файловый" сервер, так это то, что он работает с файлом демон;
  3. что делает" веб-сервер", так это то, что он запускает веб-службу демон; И
  4. что делает сервер "узла данных", так это то, что он работает с данными HDFS демон;
  5. что делает сервер "региона", то это то, что он запускает HBase регион-обслуживание демон (программы);

Итак, во всех дистрибутивах Hadoop (например, Cloudera, MAPR, Hortonworks, другие), общая лучшая практика заключается в том, что для HBase "RegionServers" "совместно расположены" с "DataNodeServers".

Это означает, что фактические подчиненные серверы (datanode), которые образуют кластер HDFS, каждый из которых работает с данными HDFS демон (программа) и они и работает в области выступающей в HBase демон (программы) как хорошо!

таким образом, мы гарантируем населенного пункта - параллельной обработка и хранение данных по всем отдельным узлам в кластере HDFS, с нет "перемещение" гигантских нагрузок больших данных из" хранилищ "в" обработку". Локальность жизненно важна для успеха кластера Hadoop, например для серверов региона HBase (узлов данных, на которых работает демон HBase ну) должен и сделайте всю их обработку (putting/getting/scanning) on каждый узел данных, содержащий HFiles, которые составляют HRegions, которые составляют HTables, которые составляют HBases (Hadoop-базы данных) ... .

Итак, серверы (VMs или физические на Windows, Linux,..) может работать несколько демоны одновременно, часто, они регулярно запускают десятки из них.