在Win10环境下的Spark安装和WordCount例子的运行

本教程运行的环境是win10,运行自带的wordcount例子的java版本,所以在所有步骤之前请确保jdk已安装并且以配置好java环境变量。没有安装jdk请参考这里。若以后要用hadoop进行开发,要注意jdk的安装路径不能有空格,因为用hadoop依赖java,而hadoop调用jdk不允许其环境变量有空格。


下载

注意spark和hadoop解压文件放的目录不能有空格,我直接放在D盘目录下了。

  1. 下载spark。这里我下载的是目前最新的release版本2.0.1,下载后得到spark-2.0.1-bin-hadoop2.7.tgz。
  2. 下载hadoop。spark运行要依赖hadoop,所以要下载所使用的spark对应版本的hadoop。我下载的spark文件名为spark-2.0.1-bin-hadoop2.7,所以要下载2.7版本的hadoop。这里我下载的是最新的版本hadoop-2.7.3-src.tar.gz。
  3. 下载hadoop在win下运行所需的文件。win下spark调用hadoop时需要这些文件,下载对应版本后后解压备用,这里下载的hadoop2.7.3对应的winutils.exe和hadoop.dll。

环境变量的配置

怎样找到环境变量配置的位置:打开文件资源管理器->右击此电脑->属性->高级系统设置->环境变量

1、spark环境变量的配置

解压下载的spark文件,我的解压目录为D:\spark-2.0.1-bin-hadoop2.7。将D:\spark-2.0.1-bin-hadoop2.7\bin添加到系统Path变量,同时新建SPARK_HOME系统变量,变量值为解压目录D:\spark-2.0.1-bin-hadoop2.7。

2、hadoop环境变量的配置

解压下载的hadoop文件,我的解压目录为D:\hadoop-2.7.3。将D:\hadoop-2.7.3\bin添加到系统Path变量,同时新建HADOOP_HOME系统变量,变量值为解压目录D:\hadoop-2.7.3。
此时打开命令行,运行run-example SparkPi应有如下显示。


在这之前运行命令可能会提示缺少winutils.exe,我记不清了是运行SparkPi时还是WordCount时了。但若提示不是内部或外部命令也不是可运行的程序时,多半是你的环境变量配置的有问题。点击这里查阅spark官方文档以获得其他运行方式

3、添加hadoop在win下缺少的文件

若提示运行上述命令提示缺少winutils.exe,这是将解压备用的文件复制到hadoop解压目录的bin目录下即可,这是运行自带的如wordcount程序必不可少的。

WordCount.java例子的运行

我的java集成开发环境使用的是Intellij Idea,使用Eclipse的此处操作大同小异。

  1. 打开Idea新建java项目,并将D:\spark-2.0.1-bin-hadoop2.7\examples\src\main\java\org\apache\spark\examples目录下的javawordcount.java文件复制到src目录下,此时可看见会缺少很多依赖。
  2. 选择菜单中的File ->Project Structure ->libraries ->+java,导入Spark安装目录D:\spark-2.0.1-bin-hadoop2.7\jars下的jar类型文件。
  3. 选择菜单中的Run ->Edit Configurations,修改Main class和VM options配置,如下图所示,配置好后保存。
  4. 运行程序,会发现什么结果也没有返回1。这是因为我们没有指定对什么文件进行wordcount。我们在项目的目录下新建一个文本,文本的里自定义几个字符串,以空格分开。
  5. 然后在javawordcount的主函数第一行添加args=new String[]{"D:\\Coding\\java\\SparkExample\\WordCount\\test.txt"};注意修改成自己新建的文本文件的目录。
  6. 运行程序,文本文件每个单词出现的次数的统计结果如下图所示。

.