HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: apache spark, apache mapreduce</p>
1 <p>Теги: apache spark, apache mapreduce</p>
2 <p>Как известно, еще не так давно при обработке больших данных активно применялся<strong>MapReduce</strong>-- Hadoop-компонент, положивший начало Big Data-обработке. Однако сегодня можно сказать, что у этого инструмента есть 2 основные проблемы:</p>
2 <p>Как известно, еще не так давно при обработке больших данных активно применялся<strong>MapReduce</strong>-- Hadoop-компонент, положивший начало Big Data-обработке. Однако сегодня можно сказать, что у этого инструмента есть 2 основные проблемы:</p>
3 <ol><li><strong>Невысокая производительность</strong>. Модель<strong>MapReduce</strong>выполняет вычисления за 2 этапа. В первую очередь он разделяет данные на части, передавая их на кластерные узлы для обработки. Потом каждый узел производит обработку данных с отправкой результата на главный узел, где и сформировывается итоговый результат распределенных вычислений. При этом<strong>MapReduce</strong>регулярно обращается к диску, ведь именно там он сохраняет промежуточные и финальные итоги вычислений. Таким образом, модель функционирует с задержками, причем эти задержки ограничивают применение<strong>MapReduce</strong>в целях обработки потоковых данных и решения Machine learning-задач.</li>
3 <ol><li><strong>Невысокая производительность</strong>. Модель<strong>MapReduce</strong>выполняет вычисления за 2 этапа. В первую очередь он разделяет данные на части, передавая их на кластерные узлы для обработки. Потом каждый узел производит обработку данных с отправкой результата на главный узел, где и сформировывается итоговый результат распределенных вычислений. При этом<strong>MapReduce</strong>регулярно обращается к диску, ведь именно там он сохраняет промежуточные и финальные итоги вычислений. Таким образом, модель функционирует с задержками, причем эти задержки ограничивают применение<strong>MapReduce</strong>в целях обработки потоковых данных и решения Machine learning-задач.</li>
4 <li><strong>Повышенная сложность</strong>. Для написания хорошего решения на<strong>MapReduce</strong>понадобится довольно высокий уровень экспертности. На практике даже относительно опытный инженер может легко допустить ошибку либо написать неэффективный алгоритм.</li>
4 <li><strong>Повышенная сложность</strong>. Для написания хорошего решения на<strong>MapReduce</strong>понадобится довольно высокий уровень экспертности. На практике даже относительно опытный инженер может легко допустить ошибку либо написать неэффективный алгоритм.</li>
5 </ol><h2>И вот пришел Spark...</h2>
5 </ol><h2>И вот пришел Spark...</h2>
6 <p>Но, как мы знаем, в 2014 появился фреймворк<strong>Spark</strong>. Он быстро стал завоевывать популярность, причем сегодня он почти вытеснил<strong>MapReduce</strong>. Собственно говоря, он и разрабатывался в целях устранения недостатков<strong>MapReduce</strong>, но, что очень важно, с сохранением преимуществ предшественника. Давайте посмотрим, каким образом<strong>Apache Spark</strong>решает проблемы<strong>MapReduce</strong>:</p>
6 <p>Но, как мы знаем, в 2014 появился фреймворк<strong>Spark</strong>. Он быстро стал завоевывать популярность, причем сегодня он почти вытеснил<strong>MapReduce</strong>. Собственно говоря, он и разрабатывался в целях устранения недостатков<strong>MapReduce</strong>, но, что очень важно, с сохранением преимуществ предшественника. Давайте посмотрим, каким образом<strong>Apache Spark</strong>решает проблемы<strong>MapReduce</strong>:</p>
7 <ol><li><strong>Spark</strong>выполняет обработку данных в памяти и, по сути, почти не обращается к диску. А при возникновении ситуации, когда объем обрабатываемых данных превышает объем RAM, Spark просто сбрасывает часть обрабатываемых данных на диск. Причем во фреймворк включены различные оптимизаторы, позволяющие сокращать количество обращений к диску. Именно поэтому<strong>Spark</strong>и быстрее<strong>MapReduce</strong>в десятки раз (а иногда и в сотни!)</li>
7 <ol><li><strong>Spark</strong>выполняет обработку данных в памяти и, по сути, почти не обращается к диску. А при возникновении ситуации, когда объем обрабатываемых данных превышает объем RAM, Spark просто сбрасывает часть обрабатываемых данных на диск. Причем во фреймворк включены различные оптимизаторы, позволяющие сокращать количество обращений к диску. Именно поэтому<strong>Spark</strong>и быстрее<strong>MapReduce</strong>в десятки раз (а иногда и в сотни!)</li>
8 <li>В<strong>Spark</strong>существует<strong>API</strong>для различных языков программирования, в результате чего писать код заметно проще, да и сам программный код более компактен. Как правило, разработчики пишут на<strong>Spark</strong>относительно высокоуровневые инструкции, а уже то, как оптимальнее их выполнить, решает он сам, причем нередко он способен выполнить эту задачу лучше человека.</li>
8 <li>В<strong>Spark</strong>существует<strong>API</strong>для различных языков программирования, в результате чего писать код заметно проще, да и сам программный код более компактен. Как правило, разработчики пишут на<strong>Spark</strong>относительно высокоуровневые инструкции, а уже то, как оптимальнее их выполнить, решает он сам, причем нередко он способен выполнить эту задачу лучше человека.</li>
9 </ol><p>К примеру, тому же Junior Data-engineer'y вполне по силам написать код на<strong>Spark</strong>, который станет работать быстрее, чем программный код, написанный более опытным Senior Data-engineer'ом на<strong>MapReduce</strong>. Кроме того, что немаловажно, на Spark у вас будет меньше шансов совершить серьезную ошибку. Собственно говоря, даже если вы и допустите ошибку, то исправить ее тоже будет легче.</p>
9 </ol><p>К примеру, тому же Junior Data-engineer'y вполне по силам написать код на<strong>Spark</strong>, который станет работать быстрее, чем программный код, написанный более опытным Senior Data-engineer'ом на<strong>MapReduce</strong>. Кроме того, что немаловажно, на Spark у вас будет меньше шансов совершить серьезную ошибку. Собственно говоря, даже если вы и допустите ошибку, то исправить ее тоже будет легче.</p>
10 <h2>Вывод прост</h2>
10 <h2>Вывод прост</h2>
11 <p>Если подвести некую черту, то можно с уверенностью сказать, что на момент написания материала<strong>Hadoop MapReduce</strong>является устаревающей технологией, в то время как<strong>Apache Spark</strong>фактически стал сегодня стандартом в области обработки Big Data.</p>
11 <p>Если подвести некую черту, то можно с уверенностью сказать, что на момент написания материала<strong>Hadoop MapReduce</strong>является устаревающей технологией, в то время как<strong>Apache Spark</strong>фактически стал сегодня стандартом в области обработки Big Data.</p>
12 <p><em>По материалам https://mcs.mail.ru/blog/.</em></p>
12 <p><em>По материалам https://mcs.mail.ru/blog/.</em></p>
13  
13