如何在Windows上设置Spark?
我正试图在Windows上设置Apache Spark。
经过一番search,我明白独立模式是我想要的。 我下载哪些二进制文件,以便在Windows中运行Apache spark? 我在火花下载页面看到hadoop和cdh的发行版。
我没有在这个网站的参考。 一步一步的指导,这是高度赞赏。
我发现Windows上最简单的解决scheme是从源代码构build。
你几乎可以按照这个指南: http : //spark.apache.org/docs/latest/building-spark.html
下载并安装Maven,并将MAVEN_OPTS
设置为指南中指定的值。
但是,如果你只是玩弄Spark,并且实际上并不需要它在Windows上运行,因为你自己的机器正在运行Windows,我强烈build议你在Linux虚拟机上安装Spark。 最简单的入门方法可能是下载Cloudera或Hortonworks制作的现成图像,或者使用Spark的捆绑版本,或者从源代码安装自己的graphics,或者从spark网站上获得已编译的二进制文件。
以本地模式安装Spark的步骤:
-
安装Java 7或更高版本 。 要testingjava安装完成,请打开命令提示符键入
java
并回车。 如果收到消息'Java' is not recognized as an internal or external command.
您需要configuration您的环境variables,JAVA_HOME
和PATH
指向jdk的path。 -
下载并安装Scala 。
在
Control Panel\System and Security\System
设置SCALA_HOME
转到“高级系统设置”,并在环境variables的PATHvariables中添加%SCALA_HOME%\bin
。 -
从Python下载链接安装Python 2.6或更高版本。
- 下载SBT 。 安装它并将
SBT_HOME
设置为值为<<SBT PATH>>
的环境variables。 - 从HortonWorks回购或git回购下载
winutils.exe
。 由于我们在Windows上没有本地Hadoop安装,因此我们必须下载winutils.exe
,并将其放在创build的Hadoop
主目录下的bin
目录中。 在环境variables中设置HADOOP_HOME = <<Hadoop home directory>>
。 -
我们将使用预先构build的Spark包,因此请为Hadoop Spark下载select一个Spark预构build包。 下载并解压缩。
设置
SPARK_HOME
并在环境variables的PATHvariables中添加%SPARK_HOME%\bin
。 -
运行命令:
spark-shell
-
在浏览器中打开
http://localhost:4040/
以查看SparkContext Web UI。
你可以从这里下载火花:
http://spark.apache.org/downloads.html
我推荐你这个版本: Hadoop 2(HDP2,CDH5)
从1.0.0版本开始,有一些.cmd脚本可以在windows中运行spark。
使用7zip或类似软件解压缩它。
开始你可以执行/bin/spark-shell.cmd –master local [2]
要configuration您的实例,您可以按照以下链接: http : //spark.apache.org/docs/latest/
您可以使用以下方法来设置Spark:
- 从源代码构build
- 使用预build的版本
尽pipe从Source构buildSpark有多种方法。
首先,我尝试用SBT构buildSpark源,但需要hadoop。 为了避免这些问题,我使用了预build的版本。
我下载了hadoop 2.x版本的Prebuilt版本,并运行它,而不是Source。 为此,您需要安装Scala作为先决条件。
我已经整理了这里的所有步骤:
如何在Windows7上以独立模式运行Apache Spark
希望它会帮助你..
试图使用spark-2.xx,构buildSpark源代码并不适合我。
-
所以,尽pipe我不打算使用Hadoop,但是我下载了预embedded的Hadoop:
spark-2.0.0-bin-hadoop2.7.tar.gz
-
在提取的目录中指向SPARK_HOME,然后添加到
PATH
:;%SPARK_HOME%\bin;
-
从Hortonworks存储库下载可执行的winutils 。
-
创build一个放置可执行文件winutils.exe的目录。 例如,C:\ SparkDev \ x64。 添加指向此目录的环境variables
%HADOOP_HOME%
,然后将%HADOOP_HOME%\bin
添加到PATH。 -
使用命令行,创build目录:
mkdir C:\tmp\hive
-
使用您下载的可执行文件,将完全权限添加到您创build的文件目录,但使用unixianforms:
%HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
-
键入以下命令行:
%SPARK_HOME%\bin\spark-shell
Scala命令行input应该自动显示。
备注:您不需要单独configurationScala。 它也是内置的。
以下是修复程序,让它在Windows中运行而不重build所有内容 – 例如,如果您没有最新版本的MS-VS。 (您将需要一个Win32 C ++编译器,但是您可以免费安装MS VS Community Edition。)
我已经尝试了Spark 1.2.2和Mahout 0.10.2以及2015年11月的最新版本。有一些问题,包括Scala代码尝试运行bash脚本(mahout / bin / mahout)当然不工作,sbin脚本没有被移植到窗口,如果没有安装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)创build脚本\ mahout \ bin \ mahout.bat并粘贴到下面的内容中,虽然_CP类path中的jar子的确切名称取决于spark和mahout的版本。 更新您的安装任何path。 使用8.3中没有空格的path名称。 请注意,在此类path中不能使用通配符/星号。
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"
variablesMAHOUT_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
下面是在Windows 10上安装spark并从python运行它的七个步骤:
第1步:从这个链接 – https://spark.apache.org/downloads.html下载火花2.2.0 tar(磁带归档)gz文件到任何文件夹F. 解压缩并将解压后的文件夹复制到所需的文件夹A.将spark-2.2.0-bin-hadoop2.7文件夹重命名为spark。
让spark文件夹的path为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 。 解压缩并将解压后的文件夹复制到同一文件夹中。将文件夹名称从Hadoop-2.7.3.tar重命名为hadoop。 让hadoop文件夹的path为C:\ Users \ Desktop \ A \ hadoop
第3步:创build一个新的记事本文本文件。 保存这个空的记事本文件为winutils.exe(保存types:所有文件)。 将此O KB winutils.exe文件复制到spark-C:\ Users \ Desktop \ A \ spark \ bin中的bin文件夹中
第4步:现在,我们必须将这些文件夹添加到系统环境。
4a:创build一个系统variables(不是用户variables,因为用户variables会inheritance系统variables的所有属性)variables名:SPARK_HOMEvariables值:C:\ Users \ Desktop \ A \ spark
查找path系统variables,然后单击编辑。 你会看到多个path。 不要删除任何path。 添加这个variables值 – ; C:\ Users \ Desktop \ A \ spark \ bin
4b:创build一个系统variables
variables名称:HADOOP_HOMEvariables值:C:\ Users \ Desktop \ A \ hadoop
查找path系统variables,然后单击编辑。 添加这个variables值 – ; C:\ Users \ Desktop \ A \ hadoop \ bin
4c:创build一个系统variablesvariables名:JAVA_HOME在Windows中searchJava。 右键单击并单击打开文件位置。 你将不得不再次右键单击任何一个java文件,然后单击打开的文件位置。 您将使用此文件夹的path。 或者您可以searchC:\ Program Files \ Java。 我的Java版本安装在系统上是jre1.8.0_131。 variables值:C:\ Program Files \ Java \ jre1.8.0_131 \ bin
查找path系统variables,然后单击编辑。 添加这个variables值 – ; 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:inputexit()或重新启动命令提示符,然后再次进入spark bin文件夹。 typespyspark:
C:\Users\Desktop\A\spark\bin>pyspark
它会显示一些警告和错误,但忽略。 有用。
第7步:您的下载完成。 如果你想直接从python shell运行spark,那么:转到python文件夹中的脚本并input
pip install findspark
在命令提示符下。
在python shell中
import findspark findspark.init()
导入必要的模块
from pyspark import SparkContext from pyspark import SparkConf
如果你想跳过导入findspark并初始化的步骤,请按照python shell中导入pyspark的步骤
这是一个简单的从任何python控制台运行的最小脚本。 它假定你已经提取了你已经下载到C:\ Apache \ spark-1.6.1的Spark库。
这在Windows中工作,没有build立任何东西,并解决了Spark会抱怨recursion酸洗的问题。
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()
Ani Menon(thx!)的指南在windows 10上几乎为我工作,我只需要从那个git(目前的hadoop-2.8.1)获得一个更新的winutils.exe: https : //github.com/steveloughran/winutils