2013-06-28 2 views
0

У меня есть кластер hadoop с двумя компьютерами, один как мастер и еще один как раб. Мои входные данные присутствуют на локальном диске Master, и я также скопировал файлы входных данных в системе HDFS. Теперь мой вопрос: если я запустил задачу MapReduce в этом кластере, тогда весь входной файл присутствует только в одной системе [которая, по моему мнению, противоречит основному принципу MapReduce «Местоположение данных»]. Я хотел бы знать, есть ли какой-либо механизм для распределения/разделения исходных файлов, чтобы входные файлы могли быть распределены на разных узлах кластера.Как распределить исходные входные файлы на узлы в Hadoop MapReduce?

+2

Зачем вам нужно беспокоиться об этом с помощью 2 компьютеров? И почему вы должны об этом беспокоиться, пусть Hadoop обрабатывает репликацию данных. –

+0

Если коэффициент репликации больше 2, ваш файл фактически существует на обеих машинах. – climbage

+0

@climbage, но один из его узлов является главным узлом, поэтому он не будет запускать datanode – Chaos

ответ

0

Допустим, что ваш кластер состоит из узла 1 и узла 2. Если Node 1 является ведущим, то на этом узле нет Datanode. Таким образом, у вас есть только Datanode на узле 2, поэтому я не уверен, что вы имеете в виду, когда говорите "so that the input files can be distributed on the different nodes of the cluster", потому что с вашей текущей настройкой у вас есть только один узел, на котором можно хранить данные.

Но если вы рассматриваете общий кластер узлов n, то, если вы скопируете данные в HDFS, тогда данные будут распределены на разные узлы кластера с помощью самого хаопа, поэтому вам не придется беспокоиться об этом.

+0

Спасибо большое, ребята. То, что меня смущает, - это если n узлов и hasoop выполняет репликацию данных, то не использует полосу пропускания сети [для выполнения репликации данных]. Является ли эта хорошая производительность мудрым? – udag

+0

он будет определенно использовать пропускную способность сети всякий раз, когда вы помещаете файл в HDFS, даже без репликации, но это неотъемлемая часть распределенной системы. Теперь, когда вы говорите: «Является ли эта хорошая производительность мудрым», предполагая, что вы имеете в виду скорость записи файлов, да, она будет медленнее, чем запись на одном узле без распространения, но опять же Hadoop предназначен для чтения одноразового чтения данных, поэтому не так важно иметь хорошую производительность при записи файлов. – Chaos

Смежные вопросы