Топология стойки в Hadoop

Я гуглил о топологии стойки и нашел этот вопрос... может быть, это вопрос сертификации Hadoop:

В вашем кластере есть подчиненные узлы в трех разных стойках, и вы написали сценарий топологии стойки, определяющий каждую машину как находящуюся в стойке1, стойке2 или стойке3. Клиентский компьютер за пределами кластера записывает в HDFS небольшой (одноблочный) файл. Первая реплика блока записывается на узел стойки2. Как определяется размещение блока для двух других реплик?

ответ на некоторых сайтах: либо оба будут записаны на узлы на стойке 1, либо оба будут записаны на узлы на стойке 3.

Почему бы не записать следующий блок на саму стойку2, а оставшийся блок либо на стойку1, либо на стойку3?


person Ashu    schedule 13.10.2015    source источник


Ответы (1)


Если клиент находится за пределами стойки, первая репликация, которую он записывает, считается локальным узлом.

Судя по документации, Hadoop размещает реплики в 3 разных узлах данных:

Локальный узел данных: узел данных, в котором клиент инициирует запись (например, с помощью команды hadoop fs -cp). Здесь размещена первая реплика. Если клиент записывает данные из-за пределов кластера, то этот узел выбирается случайным образом. Это узел, на который записывается первая реплика.

Узел данных вне стойки: узел данных, который находится на другой стойке. Вторая реплика размещена здесь.

Узел данных в стойке: узел данных, который физически присутствует в той же стойке, что и первый узел данных. Здесь размещена третья реплика

Следовательно, в вашем случае, поскольку первая реплика записана в стойке 2, это будет локальный узел данных. Вторая реплика в любой из стоек 1/стойки 3 [узел данных вне стойки]. И снова третья реплика в стойке 2 [узел данных в стойке].

person Chendur    schedule 12.09.2016