Answers:
我发现Windows上最简单的解决方案是从源代码构建。
您几乎可以遵循此指南:http : //spark.apache.org/docs/latest/building-spark.html
下载并安装Maven,并设置MAVEN_OPTS
为指南中指定的值。
但是,如果您只是在玩Spark,而实际上并不需要它在您的计算机运行Windows的任何其他原因在Windows上运行,那么我强烈建议您在Linux虚拟机上安装Spark。最简单的入门方法可能是下载由Cloudera或Hortonworks制作的现成图像,并使用Spark的捆绑版本,或者从Spark网站上安装源代码或编译后的二进制文件。
在本地模式下安装Spark的步骤:
安装Java 7或更高版本。要测试Java安装是否完成,请打开命令提示符类型,java
然后按Enter。如果收到消息,则'Java' is not recognized as an internal or external command.
需要配置环境变量,JAVA_HOME
并PATH
指向jdk的路径。
设置SCALA_HOME
在Control Panel\System and Security\System
转到“进阶系统设置”,并增加%SCALA_HOME%\bin
在环境变量PATH变量。
从Python下载链接安装Python 2.6或更高版本。
下载SBT。安装它并设置SBT_HOME
为环境变量,其值为<<SBT PATH>>
。
winutils.exe
从HortonWorks repo或git repo下载。由于我们在Windows上没有本地Hadoop安装,因此必须下载winutils.exe
并将其放置bin
在已创建的Hadoop
主目录下的目录中。HADOOP_HOME = <<Hadoop home directory>>
在环境变量中设置。
我们将使用预构建的Spark软件包,因此请为Hadoop Spark下载选择一个Spark预构建的软件包。下载并解压缩。
在环境变量中设置SPARK_HOME
并添加%SPARK_HOME%\bin
PATH变量。
运行命令: spark-shell
http://localhost:4040/
在浏览器中打开以查看SparkContext Web UI。
您可以从此处下载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/
您可以通过以下方式设置Spark:
尽管有多种方法可以从Source构建Spark。
首先,我尝试使用SBT构建Spark源,但这需要hadoop。为了避免这些问题,我使用了预发行版。
我没有下载Source,而是下载了hadoop 2.x版本的Prebuilt版本并运行了它。为此,您需要先安装Scala。
我在这里整理了所有步骤:
如何以独立模式在Windows7上运行Apache Spark
希望能帮助到您.. !!!
尝试使用spark-2.xx,构建Spark源代码对我来说不起作用。
因此,尽管我不会使用Hadoop,但我下载了嵌入hadoop的预构建Spark: spark-2.0.0-bin-hadoop2.7.tar.gz
将SPARK_HOME指向解压缩的目录,然后添加到PATH
:;%SPARK_HOME%\bin;
创建一个目录,在其中放置可执行文件winutils.exe。例如,C:\ SparkDev \ x64。添加%HADOOP_HOME%
指向该目录的环境变量,然后添加%HADOOP_HOME%\bin
到PATH。
使用命令行创建目录:
mkdir C:\tmp\hive
使用您下载的可执行文件,将完全权限添加到您创建的文件目录中,但要使用unixian形式:
%HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
键入以下命令行:
%SPARK_HOME%\bin\spark-shell
Scala命令行输入应自动显示。
备注:您不需要单独配置Scala。它也是内置的。
这是使它在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主服务器和辅助服务器的代码,因为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
Ani Menon(thx!)的指南几乎在Windows 10上为我工作,我只需要从该git(当前为hadoop-2.8.1)中获取更新的winutils.exe:https : //github.com/steveloughran/winutils
以下是在Windows 10上安装spark并从python运行它的七个步骤:
步骤1:从此链接https://spark.apache.org/downloads.html将spark 2.2.0 tar(tape存档)gz文件下载到任何文件夹F中。将其解压缩,然后将解压缩的文件夹复制到所需的文件夹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
这可能需要一些时间并给出一些警告。最后,它将显示欢迎使用Spark版本2.2.0
步骤6:键入exit()或重新启动命令提示符,然后再次进入spark bin文件夹。输入pyspark:
C:\Users\Desktop\A\spark\bin>pyspark
它会显示一些警告和错误,但会忽略。有用。
步骤7:下载完成。如果要直接从python shell运行spark,则:转到python文件夹中的Script并键入
pip install findspark
在命令提示符下。
在python shell中
import findspark
findspark.init()
导入必要的模块
from pyspark import SparkContext
from pyspark import SparkConf
如果您想跳过导入findspark并对其进行初始化的步骤,请按照在python shell中导入pyspark中给出的步骤进行操作
这是可以从任何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()