Come configurare Spark su Windows?


93

Sto provando a configurare Apache Spark su Windows.

Dopo aver cercato un po ', capisco che la modalità standalone è quello che voglio. Quali binari devo scaricare per eseguire Apache Spark in Windows? Vedo distribuzioni con hadoop e cdh nella pagina di download di Spark.

Non ho riferimenti nel web a questo. Una guida passo passo a questo è molto apprezzata.

Risposte:


34

Ho trovato che la soluzione più semplice su Windows è creare dai sorgenti.

Puoi praticamente seguire questa guida: http://spark.apache.org/docs/latest/building-spark.html

Scarica e installa Maven e imposta MAVEN_OPTSil valore specificato nella guida.

Ma se stai solo giocando con Spark e non hai effettivamente bisogno che funzioni su Windows per qualsiasi altro motivo per cui la tua macchina esegue Windows, ti suggerisco caldamente di installare Spark su una macchina virtuale Linux. Il modo più semplice per iniziare probabilmente è scaricare le immagini già pronte realizzate da Cloudera o Hortonworks e utilizzare la versione in bundle di Spark oppure installarne una propria dal sorgente o dai binari compilati che è possibile ottenere dal sito Web di Spark.


1
Grazie per l'avviso. Il collegamento è stato risolto.
jkgeyti

1
Salve, My Build su Windows funziona bene con Cygwin ma quando eseguo il comando ./start-master.sh nella directory sbin ottengo l'errore Errore: Impossibile trovare o caricare la classe principale org.apache.spark.launcher. accedi /cygdrive/c/Spark/spark-1.5.1/sbin/../logs/spark-auser-org.apache.spark.deploy.master.Master-1.host
Geek

Ciao Yashpal, l'ho provato, ma sono rimasto bloccato al passaggio 5 (winutils). Non riesco a copiare quei file nella mia directory bin.
Venkat Ramakrishnan

140

Passaggi per installare Spark in modalità locale:

  1. Installa Java 7 o successivo . Per verificare che l'installazione di java sia completa, apri il tipo di prompt dei comandi javae premi invio. Se ricevi un messaggio 'Java' is not recognized as an internal or external command. Devi configurare le tue variabili d'ambiente JAVA_HOMEe PATHpuntare al percorso di jdk.

  2. Scarica e installa Scala .

    Impostare SCALA_HOMEin Control Panel\System and Security\Systemgoto "Impostazioni di sistema avanzate" e aggiungere la %SCALA_HOME%\binvariabile PATH nelle variabili di ambiente.

  3. Installa Python 2.6 o successivo dal link per il download di Python .

  4. Scarica SBT . Installalo e imposta SBT_HOMEcome variabile di ambiente con valore come <<SBT PATH>>.

  5. Scarica winutils.exedal repository HortonWorks o dal repository git . Poiché non abbiamo un'installazione locale di Hadoop su Windows, dobbiamo scaricarla winutils.exee posizionarla in una bindirectory sotto una Hadoopdirectory home creata . Impostato HADOOP_HOME = <<Hadoop home directory>>nella variabile d'ambiente.

  6. Useremo un pacchetto Spark predefinito, quindi scegli un pacchetto predefinito Spark per il download di Hadoop Spark . Scaricalo ed estrailo.

    Imposta SPARK_HOMEe aggiungi la %SPARK_HOME%\binvariabile PATH nelle variabili di ambiente.

  7. Comando di esecuzione: spark-shell

  8. Apri http://localhost:4040/in un browser per visualizzare l'interfaccia utente Web di SparkContext.


5
Ottima guida che non richiede alcuna compilazione locale.
Matt

2
Ottengo "java.lang.IllegalArgumentException: errore durante l'istanza di 'org.apache.spark.sql.hive.HiveSessionState'". Ho bisogno di un passaggio aggiuntivo per l'installazione di hive?
Stefan


4
È molto utile, grazie. Inoltre, se qualcuno ha un errore dicendo "impossibile trovare la directory spark jars" durante l'esecuzione di spark-shell, assicurarsi che non ci sia spazio nel percorso SPARK_HOME. Lottato a lungo su questo.
Aakash Jain

1
Questo è oro proprio qui. Non riesco a spiegare quanti problemi ho avuto con Spark e Scala in Windows. Ho provato per la prima volta Windows Ubuntu Bash. Non è una buona idea! Forse se hai l'ultimo aggiornamento dei creatori (Ubuntu 16), ma per il resto ci sono un sacco di errori e problemi di rete.
Tom

21

Puoi scaricare Spark da qui:

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

Ti consiglio questa versione: Hadoop 2 (HDP2, CDH5)

Dalla versione 1.0.0 ci sono script .cmd per eseguire Spark in Windows.

Disimballalo usando 7zip o simile.

Per iniziare puoi eseguire /bin/spark-shell.cmd --master local [2]

Per configurare la tua istanza, puoi seguire questo link: http://spark.apache.org/docs/latest/


quale alternativa hadoop consiglieresti? Voglio dire qualcosa che potremmo installare anche sui nostri PC Windows. Redis?
skan

17

Puoi utilizzare i seguenti modi per configurare Spark:

  • Costruire dalla sorgente
  • Utilizzando la versione precostruita

Sebbene ci siano vari modi per costruire Spark da Source .
Per prima cosa ho provato a costruire il sorgente Spark con SBT, ma ciò richiede hadoop. Per evitare questi problemi, ho usato la versione precostruita.

Invece di Source, ho scaricato la versione Prebuilt per la versione hadoop 2.x e l'ho eseguita. Per questo è necessario installare Scala come prerequisito.

Ho raccolto tutti i passaggi qui:
Come eseguire Apache Spark su Windows7 in modalità standalone

Spero ti possa aiutare .. !!!


8

Cercando di lavorare con spark-2.xx, la creazione del codice sorgente di Spark non ha funzionato per me.

  1. Quindi, anche se non ho intenzione di usare Hadoop, ho scaricato Spark pre-costruito con hadoop incorporato: spark-2.0.0-bin-hadoop2.7.tar.gz

  2. Punta SPARK_HOME sulla directory estratta, quindi aggiungi a PATH:;%SPARK_HOME%\bin;

  3. Scarica i winutils eseguibili dal repository Hortonworks o dai winutils della piattaforma Amazon AWS .

  4. Creare una directory in cui posizionare l'eseguibile winutils.exe. Ad esempio, C: \ SparkDev \ x64. Aggiungi la variabile d'ambiente %HADOOP_HOME%che punta a questa directory, quindi aggiungi %HADOOP_HOME%\bina PATH.

  5. Utilizzando la riga di comando, crea la directory:

    mkdir C:\tmp\hive
    
  6. Utilizzando l'eseguibile che hai scaricato, aggiungi le autorizzazioni complete alla directory dei file che hai creato ma utilizzando il formalismo unixian:

    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
  7. Digita la seguente riga di comando:

    %SPARK_HOME%\bin\spark-shell
    

L'input della riga di comando di Scala dovrebbe essere mostrato automaticamente.

Nota: non è necessario configurare Scala separatamente. È anche integrato.


3

Ecco le soluzioni per farlo funzionare in Windows senza ricostruire tutto, ad esempio se non si dispone di una versione recente di MS-VS. (Avrai bisogno di un compilatore Win32 C ++, ma puoi installare MS VS Community Edition gratuitamente.)

L'ho provato con Spark 1.2.2 e mahout 0.10.2, nonché con le ultime versioni di novembre 2015. Ci sono una serie di problemi, incluso il fatto che il codice Scala tenta di eseguire uno script bash (mahout / bin / mahout) che ovviamente non funziona, gli script sbin non sono stati portati su Windows e mancano i winutils se hadoop non è installato.

(1) Installa scala, quindi decomprimi spark / hadoop / mahout nella radice di C: sotto i rispettivi nomi di prodotto.

(2) Rinomina \ mahout \ bin \ mahout in mahout.sh.was (non ne avremo bisogno)

(3) Compilare il seguente programma C ++ Win32 e copiare l'eseguibile in un file denominato C: \ mahout \ bin \ mahout (esatto - nessun suffisso .exe, come un eseguibile 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) Creare lo script \ mahout \ bin \ mahout.bat e incollare il contenuto di seguito, sebbene i nomi esatti dei jar nei percorsi delle classi _CP dipenderanno dalle versioni di spark e mahout. Aggiorna tutti i percorsi in base alla tua installazione. Usa nomi di percorso 8.3 senza spazi in essi. Notare che non è possibile utilizzare caratteri jolly / asterischi nei percorsi di classe qui.

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"

Il nome della variabile MAHOUT_CP non deve essere modificato, poiché è referenziato nel codice C ++.

Ovviamente puoi commentare il codice che avvia Spark master e worker perché Mahout eseguirà Spark quando necessario; L'ho appena inserito nel lavoro batch per mostrarti come avviarlo se vuoi usare Spark senza Mahout.

(5) Il seguente tutorial è un buon punto di partenza:

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

Puoi aprire l'istanza Mahout Spark su:

"C:\Program Files (x86)\Google\Chrome\Application\chrome" --disable-web-security http://localhost:4040


1

Ecco sette passaggi per installare Spark su Windows 10 ed eseguirlo da Python:

Passaggio 1: scarica il file gz spark 2.2.0 tar (tape Archive) in qualsiasi cartella F da questo link: https://spark.apache.org/downloads.html . Decomprimilo e copia la cartella decompressa nella cartella desiderata A. Rinomina la cartella spark-2.2.0-bin-hadoop2.7 in spark.

Lascia che il percorso della cartella Spark sia C: \ Users \ Desktop \ A \ spark

Passaggio 2: scarica il file tar gz di hardoop 2.7.3 nella stessa cartella F da questo link: https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7 .3.tar.gz . Decomprimilo e copia la cartella decompressa nella stessa cartella A. Rinomina il nome della cartella da Hadoop-2.7.3.tar a hadoop. Lascia che il percorso della cartella hadoop sia C: \ Users \ Desktop \ A \ hadoop

Passaggio 3: creare un nuovo file di testo del blocco note. Salva questo file di blocco note vuoto come winutils.exe (con Salva come tipo: Tutti i file). Copia questo file O KB winutils.exe nella cartella bin in spark - C: \ Users \ Desktop \ A \ spark \ bin

Passaggio 4: ora dobbiamo aggiungere queste cartelle all'ambiente di sistema.

4a: creare una variabile di sistema (non una variabile utente poiché la variabile utente erediterà tutte le proprietà della variabile di sistema) Nome variabile: SPARK_HOME Valore variabile: C: \ Users \ Desktop \ A \ spark

Trova la variabile di sistema Path e fai clic su Modifica. Vedrai più percorsi. Non eliminare nessuno dei percorsi. Aggiungi questo valore variabile -; C: \ Users \ Desktop \ A \ spark \ bin

4b: crea una variabile di sistema

Nome variabile: HADOOP_HOME Valore variabile: C: \ Users \ Desktop \ A \ hadoop

Trova la variabile di sistema Path e fai clic su Modifica. Aggiungi questo valore variabile -; C: \ Users \ Desktop \ A \ hadoop \ bin

4c: creare una variabile di sistema Nome variabile: JAVA_HOME Cerca Java in Windows. Fare clic con il tasto destro e fare clic su Apri percorso file. Dovrai fare nuovamente clic con il pulsante destro del mouse su uno qualsiasi dei file java e fare clic sulla posizione del file aperto. Utilizzerai il percorso di questa cartella. OPPURE puoi cercare C: \ Programmi \ Java. La mia versione di Java installata sul sistema è jre1.8.0_131. Valore variabile: C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Trova la variabile di sistema Path e fai clic su Modifica. Aggiungi questo valore variabile -; C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Passaggio 5: apri il prompt dei comandi e vai alla cartella spark bin (digita cd C: \ Users \ Desktop \ A \ spark \ bin). Digitare spark-shell.

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

Potrebbe volerci del tempo e fornire alcuni avvertimenti. Infine, mostrerà il benvenuto a Spark versione 2.2.0

Passaggio 6: digitare exit () o riavviare il prompt dei comandi e accedere nuovamente alla cartella Spark bin. Tipo pyspark:

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

Mostrerà alcuni avvisi ed errori ma ignorerà. Funziona.

Passaggio 7: il download è completo. Se vuoi eseguire spark direttamente dalla shell di python, vai su Script nella tua cartella python e digita

pip install findspark

nel prompt dei comandi.

In guscio di pitone

import findspark
findspark.init()

importare i moduli necessari

from pyspark import SparkContext
from pyspark import SparkConf

Se desideri saltare i passaggi per importare findspark e inizializzarlo, segui la procedura indicata per importare pyspark nella shell di python


0

Ecco un semplice script minimo da eseguire da qualsiasi console Python. Si presume che tu abbia estratto le librerie Spark che hai scaricato in C: \ Apache \ spark-1.6.1.

Funziona in Windows senza creare nulla e risolve i problemi in cui Spark si lamenterebbe del decapaggio ricorsivo.

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 e Hortonworks sono i migliori strumenti per avviare con HDFS in Microsoft Windows. Puoi anche utilizzare VMWare o VBox per avviare la macchina virtuale per creare build per HDFS e Spark, Hive, HBase, Pig, Hadoop con Scala, R, Java, Python.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.