如何在Windows上设置Spark?

时间:2014-08-25 07:50:21

标签: windows apache-spark

我正在尝试在Windows上设置Apache Spark。

搜索了一下后,我明白独立模式就是我想要的。 我要下载哪些二进制文件才能在Windows中运行Apache spark?我在火花下载页面看到了带有hadoop和cdh的发行版。

我在网上没有引用此内容。我们非常感谢您的分步指南。

10 个答案:

答案 0 :(得分:132)

以本地模式安装Spark的步骤:

  1. Install Java 7 or later。 要测试java安装是否完成,请打开命令提示符,键入java并按Enter键。 如果您收到消息'Java' is not recognized as an internal or external command.您需要配置环境变量,JAVA_HOMEPATH以指向jdk的路径。

  2. Download and install Scala

    SCALA_HOME转到"高级系统设置"中设置Control Panel\System and Security\System并在环境变量的PATH变量中添加%SCALA_HOME%\bin

  3. Python Download link安装Python 2.6或更高版本。

  4. Download SBT。安装它并将SBT_HOME设置为值为<<SBT PATH>>的环境变量。
  5. HortonWorks repogit repo下载winutils.exe。由于我们没有在Windows上安装本地Hadoop,因此我们必须下载winutils.exe并将其放在创建的bin主目录下的Hadoop目录中。 在环境变量中设置HADOOP_HOME = <<Hadoop home directory>>
  6. 我们将使用预先构建的Spark包,因此请为Hadoop Spark download选择Spark预构建包。下载并解压缩。

    设置SPARK_HOME并在环境变量的PATH变量中添加%SPARK_HOME%\bin

  7. 运行命令:spark-shell

  8. 在浏览器中打开http://localhost:4040/以查看SparkContext Web UI。

答案 1 :(得分:31)

我发现Windows上最简单的解决方案是从源代码构建。

您几乎可以遵循本指南:http://spark.apache.org/docs/latest/building-spark.html

下载并安装Maven,并将MAVEN_OPTS设置为指南中指定的值。

但如果你只是在玩Spark,并且实际上不需要它在Windows上运行,因为你自己的机器运行Windows的任何其他原因,我强烈建议你安装Spark在Linux虚拟机上。最简单的入门方法可能是下载Cloudera或Hortonworks制作的现成图像,并使用捆绑版本的Spark,或者从源代码或从spark网站获得的已编译二进制文件中安装您自己的图像。

答案 2 :(得分:20)

您可以从这里下载spark:

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

我推荐你这个版本: Hadoop 2(HDP2,CDH5)

从1.0.0版开始,有 .cmd 脚本在Windows中运行spark。

使用7zip或类似方法解压缩。

首先,您可以执行 /bin/spark-shell.cmd --master local [2]

要配置您的实例,您可以点击以下链接:http://spark.apache.org/docs/latest/

答案 3 :(得分:17)

您可以使用以下方式设置Spark:

  • 从源头构建
  • 使用预建版本

虽然有build Spark from Source的各种方法 首先,我尝试使用SBT构建Spark源,但这需要hadoop。为了避免这些问题,我使用了预先构建的版本。

而不是Source,我为hadoop 2.x版本下载了Prebuilt版本并运行它。 为此,您需要安装Scala作为先决条件。

我在这里整理了所有步骤:
How to run Apache Spark on Windows7 in standalone mode

希望它能帮助你...... !!!

答案 4 :(得分:8)

尝试使用spark-2.x.x,构建Spark源代码对我来说不起作用。

  1. 所以,虽然我不打算使用Hadoop,但我下载了带有hadoop嵌入式的预制Spark:spark-2.0.0-bin-hadoop2.7.tar.gz

  2. 在解压缩的目录上指向SPARK_HOME,然后添加到PATH;%SPARK_HOME%\bin;

  3. 从Hortonworks存储库或从Amazon AWS平台winutils下载可执行文件winutils

  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
    
  8. Scala命令行输入应自动显示。

    备注:您无需单独配置Scala。它也是内置的。

答案 5 :(得分:3)

以下修复程序让它在Windows中运行而不重建所有内容 - 例如,如果您没有最新版本的MS-VS。 (您将需要一个Win32 C ++编译器,但您可以免费安装MS VS Community Edition。)

我已经尝试使用Spark 1.2.2和mahout 0.10.2以及2015年11月的最新版本。存在许多问题,包括Scala代码尝试运行bash脚本这一事实(mahout / bin / mahout)当然不起作用,sbin脚本没有移植到windows,如果没有安装hadoop,则会丢失winutils。

(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类路径中的jar的确切名称将取决于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 master和worker的代码,因为Mahout会根据需要运行Spark;我只是把它放在批处理作业中,向你展示如果你想使用没有Mahout的Spark的话,如何启动它。

(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

答案 6 :(得分:2)

Ani Menon的指南(thx!)几乎在Windows 10上为我工作,我只需要从git(当前hadoop-2.8.1)获得更新的winutils.exe:https://github.com/steveloughran/winutils

答案 7 :(得分:1)

以下是在Windows 10上安装spark并从python运行它的七个步骤:

步骤1:将spark 2.2.0 tar(磁带存档)gz文件从此链接下载到任意文件夹F - https://spark.apache.org/downloads.html。解压缩并将解压缩的文件夹复制到所需的文件夹A.将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文件复制到spark中的bin文件夹 - C:\ Users \ Desktop \ A \ spark \ bin

步骤4:现在,我们必须将这些文件夹添加到系统环境中。

4a:创建系统变量(不是用户变量,因为用户变量将继承系统变量的所有属性)变量名称:SPARK_HOME 变量值:C:\ Users \ Desktop \ A \ spark

查找路径系统变量,然后单击编辑。您将看到多个路径。不要删除任何路径。添加此变量值 - ; C:\ Users \ Desktop \ A \ spark \ bin

4b:创建系统变量

变量名称:HADOOP_HOME 变量值:C:\ Users \ Desktop \ A \ hadoop

查找路径系统变量,然后单击编辑。添加此变量值 - ; C:\ Users \ Desktop \ A \ hadoop \ bin

4c:创建系统变量变量名:JAVA_HOME 在Windows中搜索Java。右键单击并单击打开文件位置。您将不得不再次右键单击任何一个java文件,然后单击打开文件位置。您将使用此文件夹的路径。或者您可以搜索C:\ Program Files \ Java。我在系统上安装的Java版本是jre1.8.0_131。 变量值:C:\ Program Files \ Java \ jre1.8.0_131 \ bin

查找路径系统变量,然后单击编辑。添加此变量值 - ; C:\ Program Files \ Java \ jre1.8.0_131 \ bin

步骤5:打开命令提示符并转到spark bin文件夹(键入cd C:\ Users \ Desktop \ A \ spark \ bin)。键入spark-shell。

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

可能需要一些时间并发出一些警告。最后,它会显示出来 欢迎来到火花版2.2.0

步骤6:键入exit()或重新启动命令提示符并再次转到spark bin文件夹。输入pyspark:

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

它会显示一些警告和错误但忽略不计。它有效。

第7步:您的下载已完成。如果你想直接从python shell运行spark,那么: 转到python文件夹中的Scripts并输入

pip install findspark

在命令提示符下。

在python shell中

import findspark
findspark.init()

导入必要的模块

from pyspark import SparkContext
from pyspark import SparkConf

如果您想跳过导入findspark并初始化它的步骤,请按照中给出的步骤进行操作 importing pyspark in python shell

答案 8 :(得分: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()

答案 9 :(得分:0)

Cloudera和Hortonworks是开始使用 Microsoft Windows中的HDFS。您还可以使用VMWare或VBox来启动虚拟机,以使用Scala,R,Java,Python建立HDFS和Spark,Hive,HBase,Pig,Hadoop的构建。