<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>author</title><generator>teletype.in</generator><description><![CDATA[author]]></description><image><url>https://teletype.in/files/90/9049b694-149d-4858-a462-71f756d3595f.png</url><title>author</title><link>https://teletype.in/@up2middle</link></image><link>https://teletype.in/@up2middle?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=up2middle</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/up2middle?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/up2middle?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 01 May 2026 02:25:38 GMT</pubDate><lastBuildDate>Fri, 01 May 2026 02:25:38 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@up2middle/ByYVgmrhH</guid><link>https://teletype.in/@up2middle/ByYVgmrhH?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=up2middle</link><comments>https://teletype.in/@up2middle/ByYVgmrhH?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=up2middle#comments</comments><dc:creator>up2middle</dc:creator><title>Is Spark really in-memory?</title><pubDate>Fri, 22 Nov 2019 08:45:36 GMT</pubDate><description><![CDATA[#becomeDataEngineer]]></description><content:encoded><![CDATA[
  <p>#becomeDataEngineer</p>
  <p>Когда врубаешься в тему инструментов для Big Data узнаешь, что сначала был Hadoop, который все мог, с помощью map reduce можно запилить любой пайплайн обработки данных. </p>
  <p>Но эра Hadoop продолжалась недолго (см в Google Trands), и в какой-то момент Apache Spark вытеснил его как наиболее крутой инструмент. Основное достоинство - Spark умеет делать операции в in-memory и не нужно постоянно использовать hdfs в ходе выполнения какой-то джобы. </p>
  <p>Однако когда читаешь доку Spark видишь что-то про запись каких-то файлов на диск, думаешь “было же in-memory”. Ну если все же нет, то куда эти файлы пишутся: на hdfs или disk space воркеров?</p>
  <hr />
  <hr />
  <p>Дело в том, что важным процессом в работе Spark является <code>shuffle</code> - процесс когда данные перераспределяются с воркеров на воркеры. Это он пишет результаты на диск. Рекомендую посмотреть картинки про <code>shuffle</code> если вы не в курсе про него. Вкратце это перераспределение данных между воркерами, а значит жирная операция по IO. </p>
  <ul>
    <li>Как <code>shuffle</code> пишет файлы и можно ли этого не делать? </li>
    <li>В чем преимущество перед Hadoop в таком случае?</li>
  </ul>
  <ul>
    <li>Где тогда in-memory в Spark?</li>
  </ul>
  <hr />
  <p>- Shuffle пишет файлы в памяти воркеров. Это кеширование делается чтобы переиспользовать эти данные, если дальше по процессу нужно снова этот RDD использовать. В памяти же их хранить не хочется, потому что память более ценный ресурс, и она активно используется для других текущих операций (не shuffle)</p>
  <p>- Преимущество над Hadoop в том, что Spark умеет объединять стадии джобы в одну таску (которым не требуется shuffle), тогда как Hadoop не умеет и будет использовать hdfs между выполнениями этих стадий.</p>
  <p>- Где тогда in-memory в Spark? В отличие от Hadoop, Spark при объединении стадий джобы не записывает их результаты на диск (тем более в hdfs). В этом смысле Spark быстрее и круче чем Hadoop</p>
  <hr />
  <p>used: <a href="https://stackoverflow.com/questions/35479876/why-does-spark-save-map-phase-output-to-local-disk/41088478#41088478" target="_blank">https://stackoverflow.com/questions/35479876/why-does-spark-save-map-phase-output-to-local-disk/41088478#41088478 </a></p>
  <p>also look on related links in answers</p>

]]></content:encoded></item></channel></rss>