hivecontext против искрового двигателя в улье [дубликат]

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

20
задан f_puras 24 July 2015 в 18:02
поделиться

4 ответа

SparkSQL vs Spark API вы можете просто представить, что вы находитесь в мире РСУБД:

SparkSQL - это чистый SQL, а Spark API - язык для записи хранимой процедуры

Hive on Spark аналогичен для SparkSQL это чистый интерфейс SQL, который использует искру в качестве механизма выполнения, SparkSQL использует синтаксис Hive, так как я бы сказал, что они почти одинаковы.

, но Hive on Spark имеет намного лучшую поддержка функций hive, особенно hiveserver2 и функций безопасности, функции hive в SparkSQL на самом деле ошибочны, в SparkSQL есть hiveserver2 impl, но в последней версии (1.6.x) hiveserver2 в SparkSQL не работает с аргументом hivevar и hiveconf и имя пользователя для входа через jdbc не работает ни ...

см. https://issues.apache.org/jira/browse/SPARK-13983

Я считаю, что поддержка улья в искровом проекте - это действительно очень низкоприоритетный материал ...

печально. Увлечение интеграцией искры не так просто, есть много конфликтов зависимостей ... таких как https://issues.apache.org/jira/browse/HIVE-13301

, и, когда я пытаюсь улей с интеграцией искры, для цели отладки, m всегда начинать hive cli следующим образом:

export HADOOP_USER_CLASSPATH_FIRST=true
bin/hive --hiveconf hive.root.logger=DEBUG,console

наше требование использует искру с hiveserver2 безопасным способом (с проверкой подлинности и авторизацией), в настоящее время SparkSQL не может этого предоставить, мы используем рейнджер / часовой + Hive on Spark.

надеюсь, что это поможет вам лучше понять, в каком направлении вы должны идти.

8
ответ дан chutium 18 August 2018 в 18:29
поделиться
  1. Когда SparkSQL использует куст, SparkSQL может использовать HiveMetastore для получения метаданных данных, хранящихся в HDFS. Эти метаданные позволяют SparkSQL лучше оптимизировать выполняемые им запросы. Здесь Spark - это процессор запросов.
  2. Когда Hive использует Spark См. запись JIRA: HIVE-7292 Здесь данные доступны через искру. А Hive - это процессор запросов. Таким образом, у нас есть все достоинства Spark Core, чтобы воспользоваться преимуществами. Но это существенное улучшение для улья и по-прежнему «продолжается» с 2 февраля 2016 года.
  3. Существует третий вариант обработки данных с помощью SparkSQL. Используйте SparkSQL без использования Hive. Здесь SparkSQL не имеет доступа к метаданным из Hast Metastore. И запросы выполняются медленнее. Я провел несколько тестов производительности, сравнивая варианты 1 и 3. Результаты здесь .
13
ответ дан prajod 18 August 2018 в 18:29
поделиться
  • 1
    В 3-м варианте, если SparkSQL не использует метастабильность улья (который по умолчанию является derby или может быть mysql), нужно ли нам также установить метастар для SparkSQL, как и для Hive? – Gaurav Khare 2 February 2016 в 19:51
  • 2
    Не нужно настраивать метастор для SparkSQL. SparkSQL может использоваться многими способами. Но в этом случае установка метастора не требуется. Даже не настраивая соединение Hive Metastore, мы можем использовать класс HiveContext из sparksql-cli. Еще один способ взглянуть на эту концепцию: SparkSQL может использовать другие источники данных, такие как файлы csv, где концепция Metastore не имеет значения. – prajod 3 February 2016 в 07:58
  • 3
    Если метастар не требуется, то как Spark SQL отслеживает метаданные таблиц. Он должен хранить эту информацию где-то. Если он принимает помощь HiveContext, значит, он все еще полагается на метастабильность улья. – Gaurav Khare 3 February 2016 в 11:31
  • 4
    См. Пример кода для варианта 3. Там вы регистрируете класс java / scala с помощью Spark. Этот класс имеет типы данных ваших файловых данных. Подобно тому, что вы делаете с спящим в программе JEE. Найдите registerTempTable в этой ссылке – prajod 11 February 2016 в 15:29
  • 5
    Я использую искру sql для запуска запроса на соединение. Я предполагаю, что искра sql использует искру в качестве механизма выполнения, но почему я получаю эту строку INFO session.SessionState: No Tez session required at this point. hive.execution.engine=mr. в своих журналах. – narush 14 February 2017 в 15:02

Проверьте этот блог с Databricks. Хотя и не слишком подробно, он рассказывает об истории, стоящей за ней, и о том, когда использовать что.

6
ответ дан Praveen Sripati 18 August 2018 в 18:29
поделиться

здесь есть ответ, который я нахожу на официальном сайте куста: 1.3 Сравнение с Shark и Spark SQL В экосистеме Spark есть два связанных проекта, которые предоставляют поддержку Hive QL для Spark: Shark и Spark SQL. ● Проект Акулы переводит планы запросов, генерируемых улья в его собственном представлении и выполняет их на Спарк. ● Спарк SQL является функция в Спарк. Он использует анализатор улья в качестве оболочки, чтобы обеспечить поддержку Hive QL. Разработчики приложений Спарк могут легко выразить свою логику обработки данных в SQL, а также других операторов Спарк, в их коде. Спарк SQL поддерживает различный случай использования, чем улей.

По сравнению с Shark и Spark SQL наш подход по дизайну поддерживает все существующие функции Hive, включая Hive QL (и любое будущее расширение), а также интеграцию Hive с авторизацией, мониторингом, аудитом и другими операционными инструментами.

3. Дизайн уровня улья Как отмечено во введении, этот проект использует другой подход от подхода Shark или Spark SQL в том смысле, что мы не будем внедрять семантику SQL с использованием примитивов Spark. Наоборот, мы реализуем его с помощью MapReduce примитивов. Единственная новая вещь здесь является то, что эти MapReduce примитивы будут выполняться в Спарк. На самом деле, лишь немногие из примитивов искру будет использоваться в этой конструкции.

Подход к выполнению примитивов MapReduce Hive на Spark, который отличается от того, что делает Shark или Spark SQL, имеет следующие прямые преимущества: пользователи 1.Spark автоматически получат весь набор полезных функций Hive, включая любые новые особенности, которые улей может ввести в будущем. 2.Это подход позволяет избежать или уменьшить необходимость любой настройки работы в исполнении Спарк двигателя улья. 3.It также ограничивает объем проекта и уменьшить содержание долговременную, сохраняя Улей-на-Спарк конгруэнтны улей MapReduce и Tez.

0
ответ дан yuxh 18 August 2018 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: