Я только начал изучать Hadoop и Map-Reduce концепции и имеют следующие несколько вопросов, которые я хотел бы списываться прежде чем двигаться вперед:Основы Hadoop и MapReduce функционирующий
Из того, что я понимаю:
Hadoop специально используется, когда имеется огромное количество данных. Когда мы храним файл в HDFS, происходит то, что файл разбивается на различные блоки (размер блока обычно составляет 64 МБ или 128 МБ ... или что-то, что настроено для текущей системы). Теперь, когда большой файл разбит на различные блоки, эти блоки хранятся в кластере. Это внутренне обрабатывается средой hadoop.
Фоном для вопроса:
Допустим, есть несколько таких огромных файлов, хранящихся в системе. Теперь блоки этих разных файлов могут храниться на узле данных, A (имеется 3 узла данных, A, B и C). А также, несколько блоков одного и того же файла могут быть сохранены в одном узле данных, А.
Scenario1:
Если запрос клиента, который требует, чтобы получить доступ к несколько блоков из то же самое файл на том же узле данных, то что будет? Будут ли множественные карты, назначенные этим различным блокам, или один и тот же картограф будет обрабатывать несколько блоков?
Другая часть в том же вопросе: как клиент знает, какие блоки или позволяет указать, какая часть файла потребуется для обработки? Как клиент не знает, как хранятся файлы, как он будет запрашивать имяNode для расположения блоков и т. Д.? Или для каждой такой обработки обрабатываются ВСЕ блоки соответствующего файла? Я хочу спросить, какие метаданные хранятся в NameNode?
Scenario2
Если есть два различных запросов на доступ блоков различных файлов на одном узле данных, то что будет? В этом случае будут другие узлы данных без каких-либо работ и не будет ли узкое место на одном узле данных?