Коэффициент репликации HDFS - PullRequest
15 голосов
/ 03 октября 2011

Когда я загружаю файл в HDFS, если я устанавливаю коэффициент репликации равным 1, разделение файлов будет происходить на одном компьютере, или разделение будет распределяться по нескольким компьютерам по сети?

hadoop fs -D dfs.replication=1 -copyFromLocal file.txt /user/ablimit

Ответы [ 4 ]

11 голосов
/ 03 октября 2011

В соответствии с Hadoop: полное руководство

Стратегия Hadoop по умолчанию заключается в размещении первой реплики на том же узле, что и клиент (для клиентов, работающих вне кластера,узел выбирается случайным образом, хотя система старается не выбирать узлы, которые слишком переполнены или слишком заняты).Вторая реплика размещается на стойке, отличной от первой (вне стойки), выбранной случайным образом.Третья реплика размещается в той же стойке, что и вторая, но на другом узле, выбранном случайным образом.Дальнейшие реплики размещаются на случайных узлах в кластере, хотя система старается не размещать слишком много реплик в одной стойке.

Эта логика имеет смысл, поскольку она уменьшает разболтанность сети между различными узлами.Но книга была опубликована в 2009 году, и в инфраструктуру Hadoop было внесено много изменений.

Я думаю, это зависит от того, является ли клиент тем же узлом Hadoop или нет.Если клиент является узлом Hadoop, то все разбиения будут на одном узле.Это не обеспечивает лучшую пропускную способность чтения / записи, несмотря на наличие нескольких узлов в кластере.Если клиент не совпадает с узлом Hadoop, то этот узел выбирается случайным образом для каждого разделения, поэтому разбиения распределяются по узлам в кластере.Теперь это обеспечивает лучшую пропускную способность чтения / записи.

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

1 голос
/ 03 октября 2011

Если для репликации задано значение 1, файл будет присутствовать только на клиентском узле, то есть на узле, с которого вы загружаете файл.

0 голосов
/ 13 февраля 2019

Если вы установите коэффициент репликации равным 1, это означает, что кластер с одним узлом. Он имеет только один клиентский узел http://commandstech.com/replication-factor-in-hadoop/., куда вы можете загружать файлы, а затем использовать их в одном узле или клиентском узле.

0 голосов
/ 25 августа 2015
  • Если ваш кластер является одним узлом, то при загрузке файла он будет разлит в соответствии с размером блока и останется на одном компьютере.
  • Если ваш кластер является многоузловым, то при загрузке файла он будет распределен в соответствии с размером блока и будет распределен по разным датоделям в вашем кластере по конвейеру, а NameNode определит, куда следует перемещать данные в кластере.

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

...