Як налаштувати Spark у Windows?


93

Я намагаюся встановити Apache Spark у Windows.

Трохи пошукаючи, я розумію, що автономний режим - це те, що я хочу. Які бінарні файли я завантажую, щоб запустити іскру Apache у Windows? Я бачу розподіли з hadoop та cdh на сторінці завантаження іскри.

У мене немає посилань на це в Інтернеті. Покрокове керівництво цим дуже високо цінується.

Відповіді:


34

Я виявив, що найпростішим рішенням для Windows є побудова з джерела.

Ви можете майже дотримуватися цього посібника: http://spark.apache.org/docs/latest/building-spark.html

Завантажте та встановіть Maven та встановіть MAVEN_OPTSзначення, вказане у посібнику.

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


1
Дякую за голови. Посилання виправлено.
jkgeyti

1
Привіт, Моя збірка на 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
Geek

Привіт Яшпал, я спробував це, але застряг на кроці 5 (winutils). Я не можу скопіювати ці файли до мого каталогу bin.
Venkat Ramakrishnan

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 «Налаштування Adv системи» і додати %SCALA_HOME%\binв змінної PATH в змінних оточення.

  3. Встановіть Python 2.6 або пізнішу версію із посилання для завантаження Python .

  4. Завантажте SBT . Встановіть його та встановіть SBT_HOMEяк змінну середовища зі значенням <<SBT PATH>>.

  5. Завантажте winutils.exeз репозиторію HortonWorks або git repo . Оскільки у нас немає локальної інсталяції 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_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 для запуску іскри у Windows.

Розпакуйте його за допомогою 7zip або подібного.

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

Щоб налаштувати свій екземпляр, ви можете перейти за цим посиланням: http://spark.apache.org/docs/latest/


яку альтернативу hadoop ви б запропонували? Я маю на увазі те, що ми могли б також встановити на наших ПК з Windows. Редіс?
скан

17

Ви можете використовувати такі способи налаштування Spark:

  • Будівництво з джерела
  • Використання попередньо побудованого випуску

Хоча існують різні способи побудови Spark з джерела .
Спочатку я спробував побудувати джерело Spark за допомогою SBT, але для цього потрібен hadoop. Щоб уникнути цих проблем, я використовував попередньо створений реліз.

Замість 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. За допомогою завантаженого виконуваного файлу додайте повні дозволи до створеного вами файлового каталогу, але використовуючи уніксальний формалізм:

    %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 та вставте вміст нижче, хоча точні назви банок у шляхах класу _CP будуть залежати від версій іскри та махута. Оновіть усі шляхи відповідно до вашої інсталяції. Використовуйте 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 не слід змінювати, оскільки на нього посилається код С ++.

Звичайно, ви можете прокоментувати код, який запускає майстра та працівника 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

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


1

Ось сім кроків, щоб встановити іскру на Windows 10 і запустити її з python:

Крок 1: завантажте файл gz spark 2.2.0 tar (tape Archive) у будь-яку папку F за цим посиланням - https://spark.apache.org/downloads.html . Розпакуйте його та скопіюйте розпаковану папку у потрібну папку А. Перейменуйте папку spark-2.2.0-bin-hadoop2.7 на spark.

Нехай шлях до папки spark буде C: \ Users \ Desktop \ A \ spark

Крок 2: завантажте файл hardoop 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 на hadoop. Нехай шлях до папки hadoop буде C: \ Users \ Desktop \ A \ hadoop

Крок 3: Створіть новий текстовий файл блокнота. Збережіть цей порожній файл блокнота як winutils.exe (із типом Зберегти як: Усі файли). Скопіюйте цей файл O KB winutils.exe у вашу папку bin у Spark - C: \ Users \ Desktop \ A \ spark \ bin

Крок 4: Тепер ми повинні додати ці папки до системного середовища.

4a: Створіть системну змінну (не змінна користувача, оскільки змінна користувача успадкує всі властивості системної змінної) Ім'я змінної: SPARK_HOME Значення змінної: C: \ Users \ Desktop \ A \ spark

Знайдіть системну змінну Path і натисніть редагувати. Ви побачите кілька шляхів. Не видаляйте жоден із шляхів. Додайте це значення змінної -; C: \ Users \ Desktop \ A \ spark \ bin

4b: Створення системної змінної

Ім'я змінної: HADOOP_HOME Значення змінної: C: \ Users \ Desktop \ A \ hadoop

Знайдіть системну змінну 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 і натисніть редагувати. Додайте це значення змінної -; 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 () або перезапустіть командний рядок і знову перейдіть до папки spark bin. Введіть піспарк:

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

Він буде відображати деякі попередження та помилки, але ігнорувати. Це працює.

Крок 7: Завантаження завершено. Якщо ви хочете безпосередньо запустити іскру з оболонки python, перейдіть до Сценарії у вашій папці 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()

0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.