2016-02-16 2 views
0

Что касается базового примера WordCount: https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html Я знаю, что HDFS делит файлы в блоках и отображает задачи на одном блоке. Таким образом, нет гарантии, что блок, проанализированный с помощью задачи карты, не будет содержать слово, продолжающееся в следующем блоке, вызывая ошибку (одно слово подсчитывается дважды). Я знаю, что это пример и всегда отображается небольшим файлом, но не будет проблемой в реальных сценариях?Hadoop MapReduce Пример примера WordCount?

+0

Вы имеете в виду, что блок, обработанный заданием карты, не будет содержать разбиений? –

+0

@RajenRaiyarelaI означает, что они могут содержать одно и то же слово: начало слова в первом блоке и окончание во втором блоке. –

+0

Возможный дубликат [Как записи процесса Hadoop разбиваются по границам блоков?] (Http://stackoverflow.com/questions/14291170/how-does-hadoop-process-records-split-across-block-boundaries) –

ответ

1

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

В текстовом мире, скажем, вы находитесь в блоке 1, и у вас есть предложение, такое как «Я Ха», а block2 продолжается с «разработчиком doop», тогда это создает сетевой трафик, поскольку мы всегда должны работать над узел с полным разделением входных данных и некоторые данные должны быть перенесены на другой узел.

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