Я заинтересован в изучении методов распределенных вычислений. Как разработчик Java я, вероятно, захочу начать с Hadoop. Не могли бы вы порекомендовать какие-нибудь книги/учебники/статьи для начала?
С чего начать работу с распределенными вычислениями?
Ответы (7)
Может быть, вы можете сначала прочитать некоторые документы, связанные с MapReduce и распределенными вычислениями, чтобы лучше понять это. Вот некоторые из них, которые я хотел бы порекомендовать:
MapReduce: упрощенная обработка данных в больших кластерах, http://www.usenix.org/events/osdi04/tech/full_papers/dean/dean_html/
Bigtable: распределенная система хранения структурированных данных, http://www.usenix.org/events/osdi06/tech/chang/chang_html/
Dryad: распределенные программы с параллельными данными из последовательных строительных блоков, http://pdos.csail.mit.edu/6.824-2007/papers/isard-dryad.pdf
Ландшафт исследований в области параллельных вычислений: взгляд из Беркли, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.8705&rep=rep1&type=pdf
С другой стороны, если вы хотите узнать больше о Hadoop, возможно, вы можете начать читать исходный код фреймворка Hadoop MapReduce.
В настоящее время я бы проверил по книгам - Полное руководство по Hadoop а>. Его написал Том Уайт, который уже давно работает над Hadoop и работает в Cloudera с Дугом Каттингом (создателем Hadoop).
Кроме того, Джимми Лин из UMD написал книгу под названием: Обработка текста с интенсивным использованием данных с помощью MapReduce. Вот ссылка на окончательную предварительную версию (ссылка предоставлена автором на его веб-сайте а>).
Hadoop не обязательно лучший инструмент для решения всех задач распределенных вычислений. Несмотря на свою мощность, он также имеет довольно крутую кривую обучения и стоимость владения. Возможно, вы захотите уточнить свои требования и поискать подходящие альтернативы в мире Java, например HTCondor. , JPPF или GridGain (извиняюсь перед теми, кого не упомянул).
Вот некоторые ресурсы от Yahoo! Сеть разработчиков
учебник:
http://developer.yahoo.com/hadoop/tutorial/
вводный курс (требуется Siverlight, вздох):
Подкаст All Things Hadoop http://allthingshadoop.com/podcast имеет хороший контент и хороших гостей. Многие из них предназначены для начала работы с распределенными вычислениями.
MIT 6.824 — лучший вариант. Недостаточно только читать документы Google, связанные с Hadoop. Систематическое изучение курса требуется, если вы хотите пойти глубже.
Если вы хотите изучить платформу распределенных вычислений, которая менее сложна, чем Hadoop, вы можете попробовать Zillabyte. Вам нужно только немного знать Ruby или Python, чтобы создавать приложения на платформе.
Как сказал LoLo, Hadoop — мощное решение, но с ним может быть сложно начать.
Материалы для изучения распределенных вычислений см. на странице http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-824-distributed-computer-systems-engineering-spring-2006/syllabus/ а>. Курс также рекомендует несколько ресурсов.