Статьи

Подробное руководство: настройка среды разработки Apache Spark в Windows 10

Вступление

В моей последней статье я рассмотрел, как настроить и использовать Hadoop в Windows. Теперь эта статья посвящена настройке локальной среды разработки для Apache Spark в ОС Windows.

Apache Spark — самая популярная технология кластерных вычислений, предназначенная для быстрых и надежных вычислений. Он обеспечивает неявный параллелизм данных и отказоустойчивость по умолчанию. Он легко интегрируется с HIVE и HDFS и обеспечивает беспроблемный опыт параллельной обработки данных. Вы можете прочитать больше о Spark на https://spark.apache.org .

По умолчанию проекты Spark SQL не работают в ОС Windows и требуют, чтобы мы сначала выполнили некоторые основные настройки; это все, что мы собираемся обсудить в этой статье, поскольку я не нашел это хорошо задокументированным в Интернете или в книгах.

Эта статья также может быть использована для настройки среды разработки Spark на Mac или Linux. Просто убедитесь, что вы загрузите правильную версию ОС с сайта Spark. 

Вы можете обратиться к проекту Scala, используемому в этой статье от GitHub, здесь: https://github.com/gopal-tiwari/LocalSparkSql .

Что ожидать

В конце этой статьи вы сможете создавать / запускать свои проекты Spark SQL и spark-shell в ОС Windows.

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


Вам также может понравиться:
Полная коллекция Apache Spark [Учебники и статьи] .

Режимы настройки Spark Local Development

  1. Доступ к одному проекту (одиночное подключение к одному проекту)
  2. Время установки: 15 минут
    Функциональность: Limited

  • У каждого проекта будет свой метастор и склад.
  • Базы данных и таблицы, созданные одним проектом, не будут доступны другим проектам.
  • Только один проект Spark SQL может запускаться или выполняться одновременно.
  • Доступ к нескольким проектам (одно подключение к нескольким проектам)

    Время установки: 20 минут
    Функциональность: Extended

    • У каждого проекта будет общий метастор и склад.
    • Таблицы, созданные одним проектом, будут доступны другим проектам или спарк-оболочке.
    • Это создаст ощущение псевдокластера.
    • Только один проект Spark SQL может запускаться или выполняться одновременно.
  • Полный кластерный доступ (Multi Project Multi Connection)

    Время установки: 40 минут
    Функциональность: Полная

    • Эта конфигурация немного утомительна, но одноразовая настройка предоставит вам возможность иметь несколько открытых соединений для метастаза.
    • Там не будет разницы между вашей локальной системой и кластером с точки зрения функциональности.
    • Базы данных и таблицы будут совместно использоваться всеми проектами или оболочками Spark.
    • Вы можете одновременно запускать несколько проектов spark-shell или Spark.
  • Решение для ошибок искры

    Многие из вас, возможно, пытались запустить spark в Windows, и могли столкнуться со следующей ошибкой при запуске проекта:

    16/04/02 19:59:31 WARN NativeCodeLoader: Unable to load native-hadoop library for
    your platform... using builtin-java classes where applicable
    16/04/02 19:59:31 ERROR Shell: Failed to locate the winutils binary in the hadoop
    binary path java.io.IOException: Could not locate executable null\bin\winutils.exe
    in the Hadoop binaries.

    Это связано с тем, что в вашей системе нет встроенных двоичных файлов Hadoop для ОС Windows.

    Вы можете создать его, следуя моей предыдущей статье, или скачать его с https://github.com/cdarlint/winutils .

    Приведенная ниже ошибка также связана с двоичными файлами Native Hadoop для ОС Windows.

    16/04/03 19:59:10 ERROR util.Shell: Failed to locate the winutils binary in the
    hadoop binary path java.io.IOException: Could not locate executable
    C:\hadoop\bin\winutils.exe in the Hadoop binaries.

    Решение то же самое. Нам нужно установить  HADOOP_HOMEс родными двоичными файлами Windows.

    Итак, просто следуйте этой статье, и в конце этого урока вы сможете избавиться от всех этих ошибок.

    Скачивание необходимых файлов

    1. Загрузите и установите JDK в соответствии с архитектурой вашей ОС и ЦП с https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html .
    2. Установите версию Scala в зависимости от версии Spark, которую вы используете, по  адресу https://www.scala-lang.org/download/all.html .
    3. Загрузите и установите 7-zip с https://www.7-zip.org/download.html .
    4. Загрузите и извлеките Apache Spark, используя 7-zip с http://spark.apache.org/downloads.html .
    5. Загрузите zip-файл или клон двоичных файлов Hadoop для Windows со страницы https://github.com/cdarlint/winutils .
    6. Если у вас не установлена ​​IDE, пожалуйста, установите ее. Intellij IDEA является предпочтительным, и вы можете получить версию для сообщества по адресу https://www.jetbrains.com/idea/download/#section=windows .
    7. Загрузите распространяемый пакет Microsoft Visual C ++ 2010, если в вашей системе эти предварительно не установлены:
      1. https://www.microsoft.com/en-us/download/details.aspx?id=5555 .
      2. https://www.microsoft.com/en-us/download/details.aspx?id=14632 .

    Для 32-битных (x86) ОС вам нужно установить только., А для 64-битных (x64) -. и б.

    В этом руководстве предполагается, что двоичные файлы Spark и Hadoop разархивированы на  диске C: \ . Однако вы можете разархивировать их в любом месте вашей системы.

    Настройка и установка

    JDK

    Прежде чем мы продолжим, давайте удостоверимся, что ваши настройки Java выполнены правильно, а переменные среды обновлены в установочном каталоге Java.

    Чтобы подтвердить, что Java установлена ​​на вашем компьютере, просто откройте cmd и введите  java –version.  Вы должны увидеть версию Java, установленную в вашей системе.

    Если вы получили сообщение об ошибке, например «java» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл », выполните следующие действия. В противном случае пропустите это.

    1. Выполните загруженную настройку JRE и JDK и завершите установку с настройками по умолчанию.
    2. Теперь откройте диалог системных переменных окружения
    • В Windows 7 щелкните правой кнопкой мыши на « Мой компьютер» и выберите « Свойства»> «Дополнительно» .
    • Для Windows 8 перейдите в Панель управления> Система> Расширенные настройки системы .
    • Для Windows 10 перейдите в Панель управления> Система и безопасность> Система> Расширенные настройки системы .
  • Нажмите кнопку Переменные среды .
  • Нажмите кнопку « Создать» в разделе « Системные переменные ». Затем введите  JAVA_HOMEв поле Имя переменной и укажите путь установки JDK в  поле Значение переменной .
  • Если путь содержит пробелы, используйте сокращенное имя пути — например, C: \ Progra ~ 1 \ Java \ jdk1.8.0_74
  • Для пользователей Windows на 64-битных системах
    • Progra ~ 1 = «Программные файлы»
    • Progra ~ 2 = ‘Программные файлы (x86)’

    Это должно выглядеть так: 
    Добавление новой системной переменной

  • Теперь нажмите ОК .
  • Затем найдите переменную Path в разделе System Variable в диалоговом окне Environment Variables, которое вы только что открыли.
  • Отредактируйте путь и нажмите кнопку « Изменить текст» или « Новый» и добавьте «;% JAVA_HOME% \ bin» в конце.
  • Добавление «% JAVA_HOME% \ bin» в PATH

    Переменные среды

  • Чтобы подтвердить установку Java, откройте новый cmd и введите  java –version, и вы сможете увидеть версию Java, которую вы только что установили.
  • Проверка версии установленной Java

    Если ваша командная строка выглядит примерно так, как на картинке выше, вы готовы. В противном случае вам нужно проверить, совпадает ли ваша установочная версия с архитектурой вашей ОС (x86, x64). Путь переменных среды также может быть неправильным.

    Scala

    1. Возможно, вам придется установить Scala, в зависимости от вашей версии Spark.
    2. Для этой статьи мы будем использовать Spark 2.4.4 и Scala 2.12.10.
    3. Просто запустите скачанный scala-2.12.10.msi и следуйте инструкциям по установке.
    4. Чтобы подтвердить установку Scala, откройте cmd и введите  scala –version. Ваша командная строка должна выглядеть следующим образом:
    5. Проверка версии Scala

    Настройка IntelliJ IDEA

    1. Вы можете настроить Eclipse с помощью плагина Scala или просто установить IntelliJ IDEA.
    2. Вы можете установить плагин Scala на экране первоначальной настройки или в меню « Настройки»> «Плагин»> «Поиск и установка Scala».
    3. Если у вас возникают проблемы с прокси-сервером VPN во время установки плагина, вы можете выбрать автономную установку плагина.
    4. Убедитесь, что окно file> settings> plugins показывает, что плагин Scala установлен, как показано на следующем рисунке:
    5. Установка плагина Scala

    Hadoop Home Setup

    1. Откройте загруженный репозиторий GitHub https://github.com/cdarlint/winutils, используя 7-zip (т.е. winutils-master.zip).
    2. Внутри вы найдете файл hadoop-2.7.7 . Теперь распакуйте его на диск C: \ .
    3. Ваш каталог C: \ hadoop-2.7.7 \ bin должен выглядеть так, как показано ниже:
    4. C: \ hadoop-2.7.7 \ bin

    5. Когда извлечение закончено, нам нужно добавить новую  HADOOP_HOMEпеременную системной среды.
    6. Чтобы добавить a  HADOOP_HOME, откройте диалоговое окно переменных среды и нажмите кнопку « Создать» в разделе « Системные переменные » и заполните  текстовые поля « Имя»  и « Значение» , как показано на рисунке ниже:
    7. Добавление переменной HADOOP_HOME

    Настройка Spark Home

    1. Откройте загруженный файл Spark gz, используя 7-zip (т.е. spark-2.4.4-bin-hadoop2.7.gz).
    2. Внутри этого вы найдете tar-файл spark-2.4.4-bin-hadoop2.7 . Дважды щелкните по нему и извлеките каталог spark-2.4.4-bin-hadoop2.7 на диск C: \ .
    3. Копирование файла Hadoop на диск C: \

    4. Ваш каталог C: \ spark-2.4.4-bin-hadoop2.7 должен выглядеть следующим образом:
    5. Каталог C: \ spark-2.4.4-bin-hadoop2.7

    6. Как только извлечение закончено, нам нужно добавить каталог Spark bin в переменную System Path «Path».
    7. Отредактируйте переменную пути и добавьте «C: \ spark-2.4.4-bin-hadoop2.7 \ bin», как показано на рисунке ниже:
    8. Редактирование переменных среды

    ПРИМЕЧАНИЕ. Если у вас нет прав администратора для добавления переменных среды, не беспокойтесь, так как вы можете установить его в IDE для каждого проекта отдельно. Процесс объясняется в следующем разделе.

    Доступ к одному проекту

    Теперь давайте создадим новый проект Scala-Maven с именем «LocalSparkSql». Кроме того, вы можете клонировать его из GitHub: https://github.com/gopal-tiwari/LocalSparkSql .

    Структура проекта выглядит следующим образом:

    Начальная структура проекта

    LocalSparkHiveTest.scala


    Scala