Как настроить Spark в Windows?

93

Я пытаюсь настроить Apache Spark в Windows.

Немного поискав, я понимаю, что мне нужен автономный режим. Какие двоичные файлы мне загрузить, чтобы запустить Apache Spark в Windows? Я вижу дистрибутивы с hadoop и cdh на странице загрузки Spark.

У меня нет ссылок на это в сети. Мы высоко ценим пошаговое руководство.

Шива
источник

Ответы:

34

Я обнаружил, что самое простое решение в Windows - это сборка из исходников.

Вы можете в значительной степени следовать этому руководству: http://spark.apache.org/docs/latest/building-spark.html

Загрузите и установите Maven и установите MAVEN_OPTSзначение, указанное в руководстве.

Но если вы просто играете со Spark и на самом деле вам не нужно, чтобы он запускался в Windows по какой-либо другой причине, поскольку ваша собственная машина работает под управлением Windows, я настоятельно рекомендую вам установить Spark на виртуальной машине Linux. Самый простой способ начать, вероятно, - загрузить готовые образы, созданные Cloudera или Hortonworks, и либо использовать связанную версию Spark, либо установить свои собственные из исходных кодов или скомпилированные двоичные файлы, которые вы можете получить с веб-сайта Spark.

Jkgeyti
источник
1
Спасибо за внимание. Ссылка исправлена.
jkgeyti
1
Привет, My Build в Windows отлично работает с Cygwin, но когда я запускаю команду ./start-master.sh в каталоге sbin, я получаю сообщение об ошибке Ошибка: не удалось найти или загрузить основной класс org.apache.spark.launcher.Main full войдите в систему /cygdrive/c/Spark/spark-1.5.1/sbin/../logs/spark-auser-org.apache.spark.deploy.master.Master-1.host
Компьютерщик
Привет, Яшпал, я пробовал это, но застрял на шаге 5 (winutils). Я не могу скопировать эти файлы в свой каталог bin.
Венкат Рамакришнан
140

Шаги по установке Spark в локальном режиме:

  1. Установите Java 7 или новее . Чтобы проверить, что установка Java завершена, откройте командную строку javaи нажмите Enter. Если вы получили сообщение, 'Java' is not recognized as an internal or external command. вам необходимо настроить переменные среды JAVA_HOMEи PATHуказать путь к jdk.

  2. Скачайте и установите Scala .

    Задайте SCALA_HOMEв Control Panel\System and Security\Systemgoto «Дополнительные настройки системы» и добавьте %SCALA_HOME%\binпеременную PATH в переменные среды.

  3. Установите Python 2.6 или новее по ссылке для загрузки Python .

  4. Скачать SBT . Установите его и задайте SBT_HOMEкак переменную среды со значением <<SBT PATH>>.

  5. Загрузите winutils.exeиз репозитория HortonWorks или репозитория git . Поскольку у нас нет локальной установки Hadoop в Windows, мы должны загрузить winutils.exeи поместить ее в binкаталог в созданном Hadoopдомашнем каталоге. Устанавливается HADOOP_HOME = <<Hadoop home directory>>в переменной окружения.

  6. Мы будем использовать предварительно созданный пакет Spark, поэтому выберите предварительно собранный пакет Spark для загрузки Hadoop Spark . Скачайте и распакуйте.

    Установите SPARK_HOMEи добавьте %SPARK_HOME%\binпеременную PATH в переменные среды.

  7. Команда выполнения: spark-shell

  8. Откройте http://localhost:4040/в браузере, чтобы увидеть веб-интерфейс SparkContext.

Ани Менон
источник
5
Отличное руководство, не требующее локальной компиляции.
Мэтт
2
Я получаю сообщение «java.lang.IllegalArgumentException: Ошибка при создании экземпляра org.apache.spark.sql.hive.HiveSessionState». Нужен ли мне дополнительный шаг для установки улья?
Стефан
4
Это очень полезно, спасибо. Кроме того, если у кого-то есть ошибка с сообщением «не удалось найти каталог Spark jars» при запуске spark-shell, убедитесь, что в вашем пути SPARK_HOME нет места. Боролся с этим долго.
Aakash Jain
1
Это золото прямо здесь. Я не могу объяснить, как много у меня было проблем со Spark и Scala в Windows. Сначала я попробовал Windows Ubuntu Bash. Не хорошая идея! Может быть, если у вас есть последнее обновление для разработчиков (Ubuntu 16), но в остальном есть масса ошибок и проблем с сетью.
Том
21

Вы можете скачать искру отсюда:

http://spark.apache.org/downloads.html

Я рекомендую вам эту версию: Hadoop 2 (HDP2, CDH5)

Начиная с версии 1.0.0 есть сценарии .cmd для запуска Spark в Windows.

Распакуйте его с помощью 7zip или аналогичного.

Для начала вы можете выполнить /bin/spark-shell.cmd --master local [2]

Чтобы настроить свой экземпляр, вы можете перейти по этой ссылке: http://spark.apache.org/docs/latest/

Аджнаварро
источник
какую альтернативу хадупу вы бы предложили? Я имею в виду то, что мы могли бы также установить на наши ПК с Windows. Редис?
skan
17

Вы можете использовать следующие способы настройки Spark:

  • Сборка из исходного кода
  • Использование готовой версии

Хотя есть разные способы собрать Spark из исходного кода .
Сначала я попытался собрать исходный код Spark с помощью SBT, но для этого требуется hasoop. Чтобы избежать этих проблем, я использовал готовую версию.

Вместо Source я загрузил Prebuilt-релиз для версии hadoop 2.x и запустил его. Для этого вам необходимо установить Scala в качестве предварительного условия.

Я сопоставил все шаги здесь:
Как запустить Apache Spark в Windows7 в автономном режиме

Надеюсь, это поможет вам .. !!!

Нишу Таял
источник
8

Попытка работать с spark-2.xx, сборка исходного кода Spark у меня не сработала.

  1. Итак, хотя я не собираюсь использовать Hadoop, я загрузил предварительно созданный Spark со встроенным hadoop: spark-2.0.0-bin-hadoop2.7.tar.gz

  2. Наведите SPARK_HOME на извлеченный каталог, затем добавьте в PATH:;%SPARK_HOME%\bin;

  3. Загрузите исполняемый файл winutils из репозитория Hortonworks или с winutils платформы Amazon AWS .

  4. Создайте каталог, в который вы поместите исполняемый файл winutils.exe. Например, C: \ SparkDev \ x64. Добавьте переменную среды, %HADOOP_HOME%которая указывает на этот каталог, затем добавьте %HADOOP_HOME%\binв PATH.

  5. Используя командную строку, создайте каталог:

    mkdir C:\tmp\hive
    
  6. Используя загруженный исполняемый файл, добавьте полные права доступа к созданному вами каталогу файлов, но используя unixian формализм:

    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
  7. Введите следующую командную строку:

    %SPARK_HOME%\bin\spark-shell
    

Ввод командной строки Scala должен отображаться автоматически.

Примечание: отдельно настраивать Scala не требуется. Он тоже встроен.

Фарах
источник
3

Вот исправления, позволяющие запустить его в Windows без перестройки всего, например, если у вас нет последней версии MS-VS. (Вам понадобится компилятор Win32 C ++, но вы можете установить MS VS Community Edition бесплатно.)

Я пробовал это с Spark 1.2.2 и mahout 0.10.2, а также с последними версиями в ноябре 2015 года. Есть ряд проблем, включая тот факт, что код Scala пытается запустить сценарий bash (mahout / bin / mahout), который, конечно, не работает, сценарии sbin не были перенесены в окна, а winutils отсутствуют, если не установлен hadoop.

(1) Установите scala, затем разархивируйте spark / hadoop / mahout в корень C: под соответствующими названиями продуктов.

(2) Переименуйте \ mahout \ bin \ mahout в mahout.sh.was (он нам не понадобится)

(3) Скомпилируйте следующую программу Win32 C ++ и скопируйте исполняемый файл в файл с именем C: \ mahout \ bin \ mahout (правильно - без суффикса .exe, как у исполняемого файла Linux)

#include "stdafx.h"
#define BUFSIZE 4096
#define VARNAME TEXT("MAHOUT_CP")
int _tmain(int argc, _TCHAR* argv[]) {
    DWORD dwLength;     LPTSTR pszBuffer;
    pszBuffer = (LPTSTR)malloc(BUFSIZE*sizeof(TCHAR));
    dwLength = GetEnvironmentVariable(VARNAME, pszBuffer, BUFSIZE);
    if (dwLength > 0) { _tprintf(TEXT("%s\n"), pszBuffer); return 0; }
    return 1;
}

(4) Создайте сценарий \ mahout \ bin \ mahout.bat и вставьте его содержимое ниже, хотя точные имена jar-файлов в путях классов _CP будут зависеть от версий spark и mahout. Обновите любые пути для вашей установки. Используйте имена путей 8.3 без пробелов. Обратите внимание, что здесь нельзя использовать подстановочные знаки / звездочки в путях к классам.

set SCALA_HOME=C:\Progra~2\scala
set SPARK_HOME=C:\spark
set HADOOP_HOME=C:\hadoop
set MAHOUT_HOME=C:\mahout
set SPARK_SCALA_VERSION=2.10
set MASTER=local[2]
set MAHOUT_LOCAL=true
set path=%SCALA_HOME%\bin;%SPARK_HOME%\bin;%PATH%
cd /D %SPARK_HOME%
set SPARK_CP=%SPARK_HOME%\conf\;%SPARK_HOME%\lib\xxx.jar;...other jars...
set MAHOUT_CP=%MAHOUT_HOME%\lib\xxx.jar;...other jars...;%MAHOUT_HOME%\xxx.jar;...other jars...;%SPARK_CP%;%MAHOUT_HOME%\lib\spark\xxx.jar;%MAHOUT_HOME%\lib\hadoop\xxx.jar;%MAHOUT_HOME%\src\conf;%JAVA_HOME%\lib\tools.jar
start "master0" "%JAVA_HOME%\bin\java" -cp "%SPARK_CP%" -Xms1g -Xmx1g org.apache.spark.deploy.master.Master --ip localhost --port 7077 --webui-port 8082 >>out-master0.log 2>>out-master0.err
start "worker1" "%JAVA_HOME%\bin\java" -cp "%SPARK_CP%" -Xms1g -Xmx1g org.apache.spark.deploy.worker.Worker spark://localhost:7077 --webui-port 8083 >>out-worker1.log 2>>out-worker1.err
...you may add more workers here...
cd /D %MAHOUT_HOME%
"%JAVA_HOME%\bin\java" -Xmx4g -classpath "%MAHOUT_CP%" "org.apache.mahout.sparkbindings.shell.Main"

Имя переменной MAHOUT_CP не следует изменять, так как на нее есть ссылка в коде C ++.

Конечно, вы можете закомментировать код, запускающий мастер и воркер Spark, потому что Mahout будет запускать Spark по мере необходимости; Я просто включил его в пакетное задание, чтобы показать вам, как его запустить, если вы хотите использовать Spark без Mahout.

(5) Следующий урок - хорошее место для начала:

https://mahout.apache.org/users/sparkbindings/play-with-shell.html

Вы можете вызвать экземпляр Mahout Spark по адресу:

"C:\Program Files (x86)\Google\Chrome\Application\chrome" --disable-web-security http://localhost:4040
Эмуль
источник
2

Руководство Ани Менон (спасибо!) Почти сработало для меня на Windows 10, мне просто нужно было получить новый winutils.exe с этого git (в настоящее время hadoop-2.8.1): https://github.com/steveloughran/winutils

Крис
источник
1

Вот семь шагов, чтобы установить Spark в Windows 10 и запустить его с Python:

Шаг 1. Загрузите файл tar (архив ленты) gz spark 2.2.0 в любую папку F по этой ссылке - https://spark.apache.org/downloads.html . Разархивируйте его и скопируйте распакованную папку в желаемую папку A. Переименуйте папку spark-2.2.0-bin-hadoop2.7 в spark.

Пусть путь к папке искры будет C: \ Users \ Desktop \ A \ spark

Шаг 2: загрузите tar gz-файл hardoop 2.7.3 в ту же папку F по этой ссылке - https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7 .3.tar.gz . Разархивируйте его и скопируйте распакованную папку в ту же папку A. Переименуйте папку с Hadoop-2.7.3.tar в hadoop. Пусть путь к папке hadoop будет C: \ Users \ Desktop \ A \ hadoop

Шаг 3: Создайте новый текстовый файл блокнота. Сохраните этот пустой файл блокнота как winutils.exe (с типом Сохранить как: Все файлы). Скопируйте этот файл winutils.exe размером O КБ в папку bin в Spark - C: \ Users \ Desktop \ A \ spark \ bin

Шаг 4: Теперь мы должны добавить эти папки в Системную среду.

4a: Создайте системную переменную (не пользовательскую переменную, поскольку пользовательская переменная будет наследовать все свойства системной переменной) Имя переменной: SPARK_HOME Значение переменной: C: \ Users \ Desktop \ A \ spark

Найдите системную переменную Path и нажмите Edit. Вы увидите несколько путей. Не удаляйте ни один из путей. Добавьте это значение переменной -; C: \ Users \ Desktop \ A \ spark \ bin

4b: Создайте системную переменную

Имя переменной: HADOOP_HOME Значение переменной: C: \ Users \ Desktop \ A \ hadoop

Найдите системную переменную Path и нажмите Edit. Добавьте это значение переменной -; C: \ Users \ Desktop \ A \ hadoop \ bin

4c: Создайте системную переменную Имя переменной: JAVA_HOME Поиск Java в Windows. Щелкните правой кнопкой мыши и выберите расположение открытого файла. Вам нужно будет снова щелкнуть правой кнопкой мыши любой из java-файлов и щелкнуть местоположение открытого файла. Вы будете использовать путь к этой папке. ИЛИ вы можете выполнить поиск по C: \ Program Files \ Java. Моя версия Java, установленная в системе, - jre1.8.0_131. Значение переменной: C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Найдите системную переменную Path и нажмите Edit. Добавьте это значение переменной -; C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Шаг 5: Откройте командную строку и перейдите в папку искрового бункера (введите cd C: \ Users \ Desktop \ A \ spark \ bin). Типа искровая гильза.

C:\Users\Desktop\A\spark\bin>spark-shell

Это может занять время и дать некоторые предупреждения. Наконец, появится надпись "Добро пожаловать в искру версии 2.2.0".

Шаг 6: Введите exit () или перезапустите командную строку и снова перейдите в папку искрового бункера. Тип pyspark:

C:\Users\Desktop\A\spark\bin>pyspark

Он будет показывать некоторые предупреждения и ошибки, но игнорировать их. Оно работает.

Шаг 7: Ваша загрузка завершена. Если вы хотите напрямую запустить искру из оболочки python, перейдите в раздел Scripts в папке python и введите

pip install findspark

в командной строке.

В оболочке Python

import findspark
findspark.init()

импортировать необходимые модули

from pyspark import SparkContext
from pyspark import SparkConf

Если вы хотите пропустить шаги по импорту findspark и его инициализации, следуйте процедуре, указанной в импорте pyspark в оболочку python.

Аакаш Саксена
источник
0

Вот простой минимальный скрипт для запуска с любой консоли Python. Предполагается, что вы распаковали библиотеки Spark, которые вы загрузили, в C: \ Apache \ spark-1.6.1.

Это работает в Windows без каких-либо сборок и решает проблемы, при которых Spark жаловался на рекурсивное травление.

import sys
import os
spark_home = 'C:\Apache\spark-1.6.1'

sys.path.insert(0, os.path.join(spark_home, 'python'))
sys.path.insert(0, os.path.join(spark_home, 'python\lib\pyspark.zip')) 
sys.path.insert(0, os.path.join(spark_home, 'python\lib\py4j-0.9-src.zip')) 

# Start a spark context:
sc = pyspark.SparkContext()

# 
lines = sc.textFile(os.path.join(spark_home, "README.md")
pythonLines = lines.filter(lambda line: "Python" in line)
pythonLines.first()
HansHarhoff
источник
0

Cloudera и Hortonworks - лучшие инструменты для запуска HDFS в Microsoft Windows. Вы также можете использовать VMWare или VBox для запуска виртуальной машины для создания сборки для вашей HDFS и Spark, Hive, HBase, Pig, Hadoop с помощью Scala, R, Java, Python.

Божественный
источник