Hadoop - осведомленность о стойках и стойках

Опубликовано: 18 Февраля, 2022

Большинство из нас знакомы с термином « стойка» . Стойка - это физическая совокупность узлов в нашем кластере Hadoop (от 30 до 40). Большой кластер Hadoop состоит из множества стоек. С помощью этой информации о стойках Namenode выбирает ближайший Datanode для достижения максимальной производительности при выполнении чтения / записи информации, что снижает сетевой трафик.

Стойка может иметь несколько узлов данных, в которых хранятся файловые блоки и их реплики. Сам Hadoop настолько умен, что автоматически записывает определенный файловый блок в 2 разных узла данных в Rack. Если вы хотите сохранить этот блок данных более чем в двух стойках, вы можете это сделать. Кроме того, поскольку эта функция настраивается, вы можете изменить ее вручную.

Пример стойки в кластере:

Как мы все знаем, большой кластер Hadoop содержит несколько стоек, в каждой стойке доступно множество узлов данных. Связь между Datanodes, находящимися в одной стойке, намного быстрее, чем связь между узлами данных, находящимися в двух разных стойках.

Узел имени имеет функцию поиска ближайшего узла данных для повышения производительности, поскольку этот узел имени содержит идентификаторы всех стоек, присутствующих в кластере Hadoop. Эта концепция выбора ближайшего узла данных для обслуживания называется Rack Awareness .

Давайте разберемся в этом на примере.

На приведенном выше изображении у нас есть 3 разных стойки в нашем кластере Hadoop, каждая стойка содержит 4 Datanode. Теперь предположим, что у вас есть 3 файловых блока (Блок 1, Блок 2, Блок 3), которые вы хотите поместить в этот узел данных. Как мы все знаем, в Hadoop есть функция создания реплик файловых блоков для обеспечения высокой доступности и отказоустойчивости. По умолчанию коэффициент репликации равен 3, поэтому Hadoop настолько умен, что размещает реплики блоков в стойках таким образом, чтобы мы могли добиться хорошей пропускной способности сети. Для этого в Hadoop есть некоторые политики осведомленности о стойках .

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

Теперь продолжим наш пример выше. На диаграмме мы легко можем обнаружить, что у нас есть блок 1 в первом Datanode стойки 1 и 2 реплики блока 1 в 5 и 6 узлах данных стойки, которые в сумме составляют 3. Точно так же у нас также есть распределение реплик: 2 других блока в разных стойках, которые следуют вышеуказанной политике.

Преимущества реализации Rack Awareness в нашем кластере Hadoop:

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

Пример осведомленности о стойке HDFS: