В чем разница между Map Reduce и Spark относительно движка в Hive? - PullRequest
0 голосов
/ 03 июля 2019

Похоже, есть два способа использовать искру в качестве внутреннего движка для Hive.

Первый напрямую использует spark в качестве двигателя. Как этот учебник .

Другой способ - использовать spark в качестве внутреннего механизма для MapReduce. Как этот учебник .

В первом уроке hive.execution.engine - это spark. И я не вижу, hdfs вовлечен.

Во втором уроке hive.execution.engine по-прежнему mr, но, поскольку нет процесса hadoop, похоже, что серверная часть mr является искрой.

Честно говоря, я немного запутался по этому поводу. Я думаю, что первый рекомендуется, так как mr устарел. Но при чем тут hdfs?

Ответы [ 2 ]

1 голос
/ 07 июля 2019

Apache Spark создает DAG (Направленный ациклический граф), тогда как Mapreduce идет с собственными Map и Reduce. При выполнении в Spark логические зависимости образуют физические зависимости.

Теперь, что такое DAG ?

DAG строит логические зависимости перед выполнением (думайте об этом как о визуальном графике) Когда у нас есть несколько карт, а уменьшение или вывод одного уменьшения - это вход на другую карту, тогда DAG поможет ускорить выполнение заданий. enter image description here DAG построен в Tez (правая сторона фотографии), но не в MapReduce (левая сторона).

Примечание: Apache Spark работает над DAG, но вместо Map / Reduce есть этапы. У Tez есть DAG и он работает на Map / Reduce. Для упрощения я использовал контекст Map / Reduce, но помните, что в Apache Spark есть этапы. Но концепция DAG остается прежней.

Причина 2: Карта сохраняет свои выходные данные на диск (буфер также, но когда 90% его заполнено, то выходные данные отправляются на диск) Оттуда данные объединяются. Но в Apache Spark промежуточные данные сохраняются в памяти, что делает их быстрее. Проверьте эту ссылку для деталей

1 голос
/ 03 июля 2019

Я понял это по-другому.

Обычно Hive использует MR в качестве механизма исполнения, если вы не используете IMPALA, но не у всех дистрибутивов есть это.

Но в течение некоторого времени Spark можно использовать как движок исполнения для Spark.

https://blog.cloudera.com/blog/2014/07/apache-hive-on-apache-spark-motivations-and-design-principles/ обсуждает это более подробно.

...