|
Spark 2.0
|
|||
---|---|---|---|
#18+
Привет! RDD, DataFrame, DataSet в чем разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2017, 22:38 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
тут лучше имхо, вместе с недостатками каждой модели - https://stackoverflow.com/questions/37301226/difference-between-dataset-api-and-dataframe ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 13:03 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
Эксперты по Apache Spark есть вопрос: я правильно понимаю, что Spark внутри себя все равно использует подход MAP-SHUFFLE-REDUCE для вычислений в кластере, только 1) операции lazy(пытается оптимизировать весь dataflow до начала выполнения); 2) старается сделать по максимуму в оперативной памяти без сброса на диск промежуточных вычислений Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 20:54 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
JJZя правильно понимаю, что Spark внутри себя все равно использует подход MAP-SHUFFLE-REDUCE для вычислений в кластере Учи английский. На эту тему куча материалов в сети, книг, курсов (на coursera и прочих) и даже роликов на ютубе для самых ленивых. Попробую помочь стартануть. Запускаешь spark-shell (да, для того, чтоб поигаться с данными не надо билдить код и использовать spark-submit). После запуска будет строка следующего содержания Код: plaintext
По этому адресу можно будет смотреть визуализированную информацию про выполнение Understanding your Apache Spark Application Through Visualization . Наример, если требуется выполнить SQL, то строится DAG. Выполнение по факту состоит из jobs, они разбиваются на stages, а те в свою очередь на tasks. Предположим, что создана таблица t (DDL например тут 20818940 ), тогда можно выполнить такой код Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
df.rdd.toDebugString показывает RDD Lineage Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Для простого сканирования в Shuffle нет необходимости. df.explain(true) показывает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Соответственно смотря на "Analyzed Logical Plan" vs "Optimized Logical Plan" можно видеть что было оптимизировано. В моем примере - ничего. Если интересует более глубокое погружение - можно смотреть конкретный сгенерированный код Код: sql 1. 2.
JJZ1) операции lazy(пытается оптимизировать весь dataflow до начала выполнения);Lazy имеет перпендикулярное отношение к спарку и его оптимизациям. lazy это концепт из scala. Означает, что значение вычисляет тогда когда нужен его результат, а не тогда когда оно определено в коде. JJZ2) старается сделать по максимуму в оперативной памяти без сброса на диск промежуточных вычисленийОн не старается по максимуму, а просто все делает в памяти. Если памяти не хватает, то валится out of memory exception. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 06:45 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
dbms_photoshopВыполнение по факту состоит из jobs, они разбиваются на stages, а те в свою очередь на tasks.Прикрепленный файл показывает картину для приведенного примера. Первый запрос 1 stage (stage 0), второй - 2 stages (stage 1 and stage 2) Число tasks было такое же как и число stages. Простыми словами число jobs и stages зависит от сложности логики. Чем замысловатее логика - тем сложнее DAG. Число tasks во многом определяется данными. Если много partitions, то может быть огромное число tasks при сканировании. Или же если много данных, то при shuffle число tasks может достигать числа nodes в кластере. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 06:56 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
dbms_photoshoplazy это концепт из scala. Только появилась эта концепция и была реализована задолго до Scala. dbms_photoshopОн не старается по максимуму, а просто все делает в памяти. Если памяти не хватает, то валится out of memory exception. Это не совсем так, ряд операций могут писать временные данные на диск, если памяти не хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2017, 02:53 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
Apexdbms_photoshoplazy это концепт из scala. Только появилась эта концепция и была реализована задолго до Scala.Ответ был дан в контексте дискуссии, хотя может стоило уточнить. Apexdbms_photoshopОн не старается по максимуму, а просто все делает в памяти. Если памяти не хватает, то валится out of memory exception. Это не совсем так, ряд операций могут писать временные данные на диск, если памяти не хватает.Можно детальнее со ссылками? Походу есть оптимизация, если результат shuffle используется многократно, то может быть записан на диск тынц . ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2017, 03:34 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
dbms_photoshopМожно детальнее со ссылками? Apache Spark FAQ Does my data need to fit in memory to use Spark?No. Spark's operators spill data to disk if it does not fit in memory, allowing it to run well on any sized data. Likewise, cached datasets that do not fit in memory are either spilled to disk or recomputed on the fly when needed, as determined by the RDD's storage level. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 03:43 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
Apexdbms_photoshopМожно детальнее со ссылками? Apache Spark FAQ Does my data need to fit in memory to use Spark?No. Spark's operators spill data to disk if it does not fit in memory, allowing it to run well on any sized data. Likewise, cached datasets that do not fit in memory are either spilled to disk or recomputed on the fly when needed, as determined by the RDD's storage level. Я думаю это относится к явному вызову cache() или persist(). Если же памяти не хватает для выполнения запроса то либо прервется всё выполнение с чем-то типа Код: plaintext
Код: plaintext
(в моем случае менеджер ресурсов YARN) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2017, 21:17 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
dbms_photoshopApexпропущено... Apache Spark FAQ пропущено... Я думаю это относится к явному вызову cache() или persist(). cache() или persist() используют storage memory, однако данные из execution memory тоже могут быть сброшены на диск. Косвенное подтверждение можно найти здесь: https://github.com/apache/spark/blob/master/core/src/main/java/org/apache/spark/memory/TaskMemoryManager.java#L138 dbms_photoshopЕсли же памяти не хватает для выполнения запроса то либо прервется всё выполнение с чем-то типа Код: plaintext
Код: plaintext
(в моем случае менеджер ресурсов YARN) Это вообще не из той оперы, такое случается когда менеджер ресурсов YARN не может дать больше, чем просит Spark. К проблемам OOM самого Spark это не имеет отношения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2017, 02:04 |
|
Spark 2.0
|
|||
---|---|---|---|
#18+
ApexЭто вообще не из той оперы, такое случается когда менеджер ресурсов YARN не может дать больше, чем просит Spark. К проблемам OOM самого Spark это не имеет отношения.Ну воспроизвести довольно просто. Создаем табличку с 1М строк и запрос с картезианцем и аналитикой без партиционирования. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: plaintext
Код: sql 1. 2. 3. 4.
Код: plaintext
Код: sql 1. 2. 3. 4. 5. 6.
https://gsamaras.wordpress.com/code/spark-container-exited-with-a-non-zero-exit-code-143/ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2017, 14:24 |
|
|
start [/forum/topic.php?fid=48&fpage=4&tid=1856657]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
103ms |
get tp. blocked users: |
2ms |
others: | 20ms |
total: | 202ms |
0 / 0 |