如何在Windows上设置Spark?

如何在Windows上设置Spark?,windows,apache-spark,Windows,Apache Spark,我正在尝试在Windows上安装Apache Spark 经过一点搜索,我了解到独立模式是我想要的。 为了在windows中运行Apache spark,我应该下载哪些二进制文件?我在spark下载页面看到了hadoop和cdh的发行版 我在网上没有这方面的参考资料。对此,我们非常感谢您的逐步指导 我发现Windows上最简单的解决方案是从源代码构建 您可以大致遵循以下指南: 下载并安装Maven,并将Maven\u OPTS设置为指南中指定的值 但是,如果您只是在玩Spark,实际上不需要它在

我正在尝试在Windows上安装Apache Spark

经过一点搜索,我了解到独立模式是我想要的。 为了在windows中运行Apache spark,我应该下载哪些二进制文件?我在spark下载页面看到了hadoop和cdh的发行版


我在网上没有这方面的参考资料。对此,我们非常感谢您的逐步指导

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

您可以大致遵循以下指南:

下载并安装Maven,并将
Maven\u OPTS
设置为指南中指定的值


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

您可以从以下位置下载Spark:

我向您推荐此版本:Hadoop 2(HDP2、CDH5)

从1.0.0版开始,windows中就有运行spark的.cmd脚本

使用7zip或类似工具打开包装

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


要配置实例,您可以按照以下链接进行操作:

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

  • 从源头上建设
  • 使用预构建版本
尽管有各种各样的方法来解决问题。
首先,我尝试用SBT构建Spark源代码,但这需要hadoop。为了避免这些问题,我使用了预构建版本

我下载了Hadoop2.x版本的预构建版本并运行了它,而不是源代码。 为此,您需要先安装Scala

我在这里整理了所有步骤:


希望对你有帮助

> P>这是修复它在Windows中运行而不需要重建所有的东西——比如如果你没有MS-VS的最新版本(你需要一个Win32 C++编译器,但是你可以安装MSVS社区版)。 我曾在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:\MaulOut\Bi\MaOutt的文件(即,右.exe后缀,如Linux可执行文件)

(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"
<> P>变量MaUutuPCP的名称不应该更改,因为它在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

下面是一个可以从任何python控制台运行的简单的最小脚本。 它假定您已提取已下载到C:\Apache\Spark-1.6.1中的Spark库

这可以在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()

在本地模式下安装Spark的步骤:

  • 。 要测试java安装是否完成,请打开命令提示符键入
    java
    ,然后按enter键。 如果收到消息,
    “Java”不被识别为内部或外部命令。
    您需要配置环境变量,
    Java\u HOME
    PATH
    指向jdk的路径

  • Control Panel\System and Security\System
    中设置
    SCALA\u HOME
    转到“Adv System settings”,并在环境变量的路径变量中添加
    %SCALA\u HOME%\bin

  • 从安装Python 2.6或更高版本

  • 。安装它并将
    SBT\u HOME
    设置为环境变量,其值为

  • 从或下载
    winutils.exe
    。由于Windows上没有本地Hadoop安装,我们必须下载
    winutils.exe
    ,并将其放置在已创建的
    Hadoop
    主目录下的
    bin
    目录中。 在环境变量中设置HADOOP\u HOME=

  • 我们将使用一个预建的Spark软件包,因此请选择一个Spark预建软件包。下载并解压缩它

    在环境变量的路径变量中设置
    SPARK\u HOME
    并添加
    %SPARK\u HOME%\bin

  • 运行命令:
    sparkshell

  • 打开
    http://localhost:4040/
    在浏览器中查看SparkContext web UI


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

  • 因此,尽管我不打算使用Hadoop,但我下载了嵌入Hadoop的预构建Spark:
    Spark-2.0.0-bin-hadoop2.7.tar.gz

  • 将SPARK_指向提取目录的主目录,然后添加到
    路径
    ;%SPARK\u HOME%\bin

  • <
    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()
    
    mkdir C:\tmp\hive
    
    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
    %SPARK_HOME%\bin\spark-shell
    
    C:\Users\Desktop\A\spark\bin>spark-shell
    
    C:\Users\Desktop\A\spark\bin>pyspark
    
    pip install findspark
    
    import findspark
    findspark.init()
    
    from pyspark import SparkContext
    from pyspark import SparkConf