Como configurar o Spark no Windows?


93

Estou tentando configurar o Apache Spark no Windows.

Depois de pesquisar um pouco, entendi que o modo autônomo é o que eu quero. Quais binários devo baixar para executar o Apache Spark no Windows? Vejo distribuições com hadoop e cdh na página de download do Spark.

Não tenho referências na web para isso. Um guia passo a passo para isso é muito apreciado.

Respostas:


34

Descobri que a solução mais fácil no Windows é construir a partir da fonte.

Você pode muito bem seguir este guia: http://spark.apache.org/docs/latest/building-spark.html

Baixe e instale o Maven e defina MAVEN_OPTSo valor especificado no guia.

Mas se você está apenas brincando com o Spark e não precisa realmente dele para rodar no Windows por qualquer outro motivo de que sua própria máquina esteja rodando o Windows, eu sugiro fortemente que você instale o Spark em uma máquina virtual Linux. A maneira mais simples de começar provavelmente é baixar as imagens prontas feitas por Cloudera ou Hortonworks e usar a versão empacotada do Spark ou instalar sua própria versão ou os binários compilados que você pode obter no site do Spark.


1
Obrigado pelo aviso. O link foi corrigido.
jkgeyti

1
Olá, My Build no Windows funciona bem com Cygwin, mas quando executo o comando ./start-master.sh no diretório sbin, recebo o erro Erro: Não foi possível encontrar ou carregar a classe principal org.apache.spark.launcher.Main full faça login /cygdrive/c/Spark/spark-1.5.1/sbin/../logs/spark-auser-org.apache.spark.deploy.master.Master-1.host
Geek

Olá, Yashpal, tentei fazer isso, mas não consegui prosseguir na etapa 5 (winutils). Não consigo copiar esses arquivos para o meu diretório bin.
Venkat Ramakrishnan

140

Etapas para instalar o Spark no modo local:

  1. Instale o Java 7 ou posterior . Para testar a instalação do java, abra o prompt de comando javae pressione Enter. Se você receber uma mensagem, 'Java' is not recognized as an internal or external command. você precisa configurar suas variáveis ​​de ambiente JAVA_HOMEe PATHapontar para o caminho de jdk.

  2. Baixe e instale o Scala .

    Defina SCALA_HOMEem Control Panel\System and Security\Systemgoto "Adv System settings" e adicione a %SCALA_HOME%\binvariável PATH nas variáveis ​​de ambiente.

  3. Instale o Python 2.6 ou posterior a partir do link de download do Python .

  4. Baixe o SBT . Instale-o e defina-o SBT_HOMEcomo uma variável de ambiente com valor como <<SBT PATH>>.

  5. Baixe winutils.exedo repositório HortonWorks ou do repositório git . Como não temos uma instalação local do Hadoop no Windows, temos que fazer o download winutils.exee colocá-lo em um bindiretório em um Hadoopdiretório inicial criado . Definido HADOOP_HOME = <<Hadoop home directory>>na variável de ambiente.

  6. Estaremos usando um pacote pré-construído do Spark, então escolha um pacote pré-construído do Spark para o download do Hadoop Spark . Baixe e extraia.

    Defina SPARK_HOMEe adicione a %SPARK_HOME%\binvariável PATH nas variáveis ​​de ambiente.

  7. Comando de execução: spark-shell

  8. Abra http://localhost:4040/em um navegador para ver a IU da web SparkContext.


5
Grande guia que não requer nenhuma compilação local.
Matt

2
Recebo "java.lang.IllegalArgumentException: Erro ao instanciar 'org.apache.spark.sql.hive.HiveSessionState'". Eu preciso de uma etapa extra para instalar o hive?
Stefan,


4
Isso é muito útil, obrigado. Além disso, se alguém tiver um erro dizendo "falhou em encontrar o diretório do Spark Jars" ao executar o Spark-Shell, certifique-se de que não haja espaço no caminho SPARK_HOME. Lutei por isso por muito tempo.
Aakash Jain de

1
Isso é ouro bem aqui. Não consigo explicar quantos problemas tive com Spark e Scala no Windows. Tentei primeiro o Windows Ubuntu Bash. Não é uma boa ideia! Talvez se você tiver a última atualização do criador (Ubuntu 16), mas caso contrário, há uma tonelada de erros e problemas de rede.
Tom

21

Você pode baixar o Spark aqui:

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

Recomendo esta versão: Hadoop 2 (HDP2, CDH5)

Desde a versão 1.0.0, existem scripts .cmd para executar o Spark no Windows.

Descompacte-o usando 7zip ou similar.

Para começar, você pode executar /bin/spark-shell.cmd --master local [2]

Para configurar sua instância, você pode seguir este link: http://spark.apache.org/docs/latest/


que alternativa hadoop você sugere? Quero dizer algo que também podemos instalar em nossos PCs com Windows. Redis?
skan de

17

Você pode usar as seguintes maneiras de configurar o Spark:

  • Construindo da Fonte
  • Usando uma versão pré-construída

Embora existam várias maneiras de construir o Spark a partir da fonte .
Primeiro, tentei criar o código-fonte do Spark com o SBT, mas isso requer hadoop. Para evitar esses problemas, usei uma versão pré-construída.

Em vez do código-fonte, baixei a versão pré-construída para a versão 2.x do hadoop e a executei. Para isso, você precisa instalar o Scala como pré-requisito.

Reuni todas as etapas aqui:
Como executar o Apache Spark no Windows7 no modo autônomo

Espero que ajude você .. !!!


8

Tentando trabalhar com o spark-2.xx, construir o código-fonte do Spark não funcionou para mim.

  1. Portanto, embora não vá usar o Hadoop, baixei o Spark pré-construído com hadoop incorporado: spark-2.0.0-bin-hadoop2.7.tar.gz

  2. Aponte SPARK_HOME no diretório extraído e adicione a PATH:;%SPARK_HOME%\bin;

  3. Baixe os winutils executáveis do repositório Hortonworks ou do winutils da plataforma Amazon AWS .

  4. Crie um diretório onde você coloca o winutils.exe executável. Por exemplo, C: \ SparkDev \ x64. Adicione a variável de ambiente %HADOOP_HOME%que aponta para este diretório e, em seguida, adicione %HADOOP_HOME%\binao PATH.

  5. Usando a linha de comando, crie o diretório:

    mkdir C:\tmp\hive
    
  6. Usando o executável que você baixou, adicione permissões completas ao diretório de arquivos que você criou, mas usando o formalismo unixiano:

    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
  7. Digite a seguinte linha de comando:

    %SPARK_HOME%\bin\spark-shell
    

A entrada da linha de comando do Scala deve ser exibida automaticamente.

Observação: você não precisa configurar o Scala separadamente. Também está integrado.


3

Aqui estão as correções para que ele seja executado no Windows sem reconstruir tudo - como se você não tivesse uma versão recente do MS-VS. (Você precisará de um compilador Win32 C ++, mas pode instalar o MS VS Community Edition gratuitamente.)

Eu tentei isso com Spark 1.2.2 e mahout 0.10.2, bem como com as versões mais recentes em novembro de 2015. Há uma série de problemas, incluindo o fato de que o código Scala tenta executar um script bash (mahout / bin / mahout) que não funciona, os scripts sbin não foram transferidos para o Windows e os winutils estão faltando se o hadoop não estiver instalado.

(1) Instale o scala e, em seguida, descompacte spark / hadoop / mahout na raiz de C: sob seus respectivos nomes de produto.

(2) Renomeie \ mahout \ bin \ mahout para mahout.sh.was (não vamos precisar disso)

(3) Compile o seguinte programa Win32 C ++ e copie o executável para um arquivo chamado C: \ mahout \ bin \ mahout (isso mesmo - sem sufixo .exe, como um executável 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) Crie o script \ mahout \ bin \ mahout.bat e cole o conteúdo abaixo, embora os nomes exatos dos jars nos caminhos de classe _CP dependam das versões de spark e mahout. Atualize todos os caminhos por sua instalação. Use nomes de caminhos 8.3 sem espaços neles. Observe que você não pode usar curingas / asteriscos nos caminhos de classe aqui.

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"

O nome da variável MAHOUT_CP não deve ser alterado, pois é referenciado no código C ++.

É claro que você pode comentar o código que inicia o mestre e o trabalhador do Spark porque o Mahout executará o Spark conforme necessário; Acabei de colocá-lo no trabalho em lote para mostrar como iniciá-lo se você quiser usar o Spark sem Mahout.

(5) O seguinte tutorial é um bom lugar para começar:

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

Você pode abrir a instância Mahout Spark em:

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


1

Aqui estão sete etapas para instalar o Spark no Windows 10 e executá-lo a partir do Python:

Etapa 1: baixe o arquivo spark 2.2.0 tar (tape Archive) gz para qualquer pasta F neste link - https://spark.apache.org/downloads.html . Descompacte-o e copie a pasta descompactada para a pasta desejada A. Renomeie a pasta spark-2.2.0-bin-hadoop2.7 para spark.

Deixe o caminho para a pasta spark ser C: \ Users \ Desktop \ A \ spark

Etapa 2: baixe o arquivo hardoop 2.7.3 tar gz para a mesma pasta F deste link - https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7 .3.tar.gz . Descompacte-o e copie a pasta descompactada para a mesma pasta A. Renomeie o nome da pasta de Hadoop-2.7.3.tar para hadoop. Deixe que o caminho para a pasta hadoop seja C: \ Users \ Desktop \ A \ hadoop

Etapa 3: Crie um novo arquivo de texto do bloco de notas. Salve este arquivo vazio do bloco de notas como winutils.exe (com Salvar como tipo: Todos os arquivos). Copie este arquivo O KB winutils.exe para a pasta bin em spark - C: \ Users \ Desktop \ A \ spark \ bin

Etapa 4: Agora, temos que adicionar essas pastas ao ambiente do sistema.

4a: Crie uma variável de sistema (não uma variável de usuário, pois a variável de usuário herdará todas as propriedades da variável de sistema) Nome da variável: SPARK_HOME Valor da variável: C: \ Usuários \ Desktop \ A \ spark

Encontre a variável de sistema do caminho e clique em editar. Você verá vários caminhos. Não exclua nenhum dos caminhos. Adicione este valor de variável -; C: \ Users \ Desktop \ A \ spark \ bin

4b: Crie uma variável de sistema

Nome da variável: HADOOP_HOME Valor da variável: C: \ Users \ Desktop \ A \ hadoop

Encontre a variável de sistema do caminho e clique em editar. Adicione este valor de variável -; C: \ Users \ Desktop \ A \ hadoop \ bin

4c: Crie uma variável de sistema Nome da variável: JAVA_HOME Pesquise Java no Windows. Clique com o botão direito e clique em abrir o local do arquivo. Você terá que clicar novamente com o botão direito em qualquer um dos arquivos java e clicar em abrir o local do arquivo. Você usará o caminho desta pasta. OU você pode pesquisar C: \ Arquivos de programas \ Java. Minha versão do Java instalada no sistema é jre1.8.0_131. Valor da variável: C: \ Arquivos de programas \ Java \ jre1.8.0_131 \ bin

Encontre a variável de sistema do caminho e clique em editar. Adicione este valor de variável -; C: \ Arquivos de programas \ Java \ jre1.8.0_131 \ bin

Etapa 5: Abra o prompt de comando e vá para a pasta spark bin (digite cd C: \ Users \ Desktop \ A \ spark \ bin). Digite faísca.

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

Pode demorar algum tempo e dar alguns avisos. Finalmente, ele será bem-vindo ao spark versão 2.2.0

Etapa 6: Digite exit () ou reinicie o prompt de comando e vá para a pasta spark bin novamente. Digite pyspark:

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

Ele mostrará alguns avisos e erros, mas ignore. Funciona.

Etapa 7: Seu download foi concluído. Se você deseja executar diretamente o spark a partir do shell python: vá para Scripts em sua pasta python e digite

pip install findspark

no prompt de comando.

Em python shell

import findspark
findspark.init()

importe os módulos necessários

from pyspark import SparkContext
from pyspark import SparkConf

Se você quiser pular as etapas de importação de findpark e inicializá-lo, siga o procedimento fornecido para importar pyspark em shell python


0

Aqui está um script mínimo simples para ser executado em qualquer console Python. Ele assume que você extraiu as bibliotecas do Spark baixadas em C: \ Apache \ spark-1.6.1.

Isso funciona no Windows sem criar nada e resolve os problemas em que o Spark reclama sobre decapagem recursiva.

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 são as melhores ferramentas para inicializar com o HDFS no Microsoft Windows. Você também pode usar VMWare ou VBox para iniciar a máquina virtual para estabelecer a construção de seu HDFS e Spark, Hive, HBase, Pig, Hadoop com Scala, R, Java, Python.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.