Для того что бы начать описывать принцип работы Hive, я бы хотел сначала рассказать о некоторых базовых понятиях hadoop. Итак, сегодня я хотел бы попытаться объяснить что же такое MapReduce. Классическое объяснение - можно посмотреть здесь. Но мне кажется, что это объяснение "на пальцах" не очень "пальцатое", то есть - нет какого-то четкого клеше, которое сформируется в голове у начинающего програмиста. Допустим у нас есть 5 корзинок(серверов), в каждой из которой лежат яблоки, груши, апельсины.
После этого "выделения" начинается пересылка фруктов по сети. Все яблоки перемещаются в одну кучку (сервер), та же судьба ждет и груши с аппельсинами.
Да, это именно пересылка по сети. Сеть при определенной нагрузке - потенциальнео "слабое звено" кластера. Но впрочем в ряде случаев столь большой overhead можно обойти, но об это позже. После того как пересылка завершена - начинается стадия reduce - просто подсчитываем элемнты в каждой из кучек (один, два, три...)
Вот собственно и все. Это был самый вехний уровень абстракции. В следующем посте я хочу подробно рассказать о том как происходит процесс MapReduce. Да, маленькое замечание - весь этот процесс происходит на одних и тех же 5 серверах!
Если у Вас есть вопросы - не стесняйтесь их задавать!
No comments:
Post a Comment