如何在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的步骤:

  1. 安装Java 7或更高版本 。 要testingjava安装完成,请打开命令提示符键入java并回车。 如果收到消息'Java' is not recognized as an internal or external command. 您需要configuration您的环境variables, JAVA_HOMEPATH指向jdk的path。

  2. 下载并安装Scala 。

    Control Panel\System and Security\System设置SCALA_HOME转到“高级系统设置”,并在环境variables的PATHvariables中添加%SCALA_HOME%\bin

  3. 从Python下载链接安装Python 2.6或更高版本。

  4. 下载SBT 。 安装它并将SBT_HOME设置为值为<<SBT PATH>>的环境variables。
  5. 从HortonWorks回购或git回购下载winutils.exe 。 由于我们在Windows上没有本地Hadoop安装,因此我们必须下载winutils.exe ,并将其放在创build的Hadoop主目录下的bin目录中。 在环境variables中设置HADOOP_HOME = <<Hadoop home directory>>
  6. 我们将使用预先构build的Spark包,因此请为Hadoop Spark下载select一个Spark预构build包。 下载并解压缩。

    设置SPARK_HOME并在环境variables的PATHvariables中添加%SPARK_HOME%\bin

  7. 运行命令: spark-shell

  8. 在浏览器中打开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源代码并不适合我。

  1. 所以,尽pipe我不打算使用Hadoop,但是我下载了预embedded的Hadoop: spark-2.0.0-bin-hadoop2.7.tar.gz

  2. 在提取的目录中指向SPARK_HOME,然后添加到PATH;%SPARK_HOME%\bin;

  3. 从Hortonworks存储库下载可执行的winutils 。

  4. 创build一个放置可执行文件winutils.exe的目录。 例如,C:\ SparkDev \ x64。 添加指向此目录的环境variables%HADOOP_HOME% ,然后将%HADOOP_HOME%\bin添加到PATH。

  5. 使用命令行,创build目录:

     mkdir C:\tmp\hive 
  6. 使用您下载的可执行文件,将完全权限添加到您创build的文件目录,但使用unixianforms:

     %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive 
  7. 键入以下命令行:

     %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