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

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

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

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

Ответ 1

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

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

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

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

Ответ 2

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

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

  • Загрузите и установите Scala.

    Установите SCALA_HOME в Control Panel\System and Security\System перейдите в "Adv System settings" и добавьте %SCALA_HOME%\bin в переменную PATH в переменные среды.

  • Установить Python 2.6 или более поздней версии из Python Скачать ссылку.

  • Загрузить SBT. Установите его и установите SBT_HOME как переменную среды со значением как <<SBT PATH>>.
  • Загрузите winutils.exe из HortonWorks repo или git repo. Поскольку у нас нет локальной установки Hadoop в Windows, мы должны загрузить winutils.exe и поместить ее в каталог bin в созданном домашнем каталоге Hadoop. Установите HADOOP_HOME = <<Hadoop home directory>> в переменную окружения.
  • Мы будем использовать готовый пакет Spark, поэтому выберите готовый пакет Spark для Hadoop Spark download. Загрузите и извлеките его.

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

  • Команда запуска: spark-shell

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

Ответ 3

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

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

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

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

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

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

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

Ответ 4

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

  • Здание из источника
  • Использование готового выпуска

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

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

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

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

Ответ 5

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

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

  • Укажите SPARK_HOME в извлеченном каталоге, затем добавьте в PATH: ;%SPARK_HOME%\bin;

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

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

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

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

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

    %SPARK_HOME%\bin\spark-shell
    

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

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

Ответ 6

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

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

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

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

(3) Скомпилируйте следующую программу Win32 С++ и скопируйте исполняемый файл в файл с именем 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) Создайте script\mahout\bin\mahout.bat и вставьте содержимое ниже, хотя точные имена банок в путях класса _CP будут зависеть от версий искры и махаута. Обновите любые пути в вашей установке. Используйте имена путей 8.3 без пробелов в них. Обратите внимание: вы не можете использовать подстановочные знаки/звездочки в pathpaths здесь.

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 не должно изменяться, так как оно ссылается на код С++.

Конечно, вы можете прокомментировать код, запускающий мастера и работника 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

Ответ 7

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

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

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

Шаг 2: загрузите файл hardtop 2.7.3 tar gz в ту же папку 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 в hasoop. Пусть путь к папке hadoop будет C:\Users\Desktop\A\hadoop

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

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

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

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

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

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

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

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

Найдите системную переменную Path Path и нажмите "Изменить" . Добавьте это значение переменной -; 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

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

Ответ 8

Ниже приведен простой минимум script для запуска с любой консоли 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()

Ответ 9

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