前言
无论Windows 或Linux 操作系统,构建Spark 开发环境的思路一致,基于Eclipse 或Idea,通过Java、Scala 或Python 语言进行开发。安装之前需要提前准备好JDK、Scala 或Python 环境,然后在Eclipse 中下载安装Scala 或Python 插件(Spark支持Java、Python等语言)。基本步骤如下:
第一步:安装JDK
第二步:安装Scala
第三步: 配置Spark环境变量
第四步:安装Hadoop工具包
第五步:安装Eclipse
第六步:安装Eclipse Scala IDE插件
第一步:安装JDK
(1)下载JDK(1.7以上版本)
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
(2)配置环境变量(以Windows为例)
新增JAVA_HOME 变量,值:C:\Program Files\Java\jdk1.7.0_71
新增CLASSPATH 变量,值:.;%JAVA_HOME%\lib
增加PATH 变量,补充:;%JAVA_HOME%\bin
进入cmd 界面测试JDK 是否安装成功:
C:\Users\admin>java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
第二步:安装Scala
(1)下载Scala(下载 Scala 包)
下载地址(Scala 主页):http://www.scala-lang.org/download/(Scala 2.9.3版本可以直接点击该地址下载:Scala 2.9.3 下载后直接点击安装即可)
(2)下载完成后解压,增加PATH 变量
比如解压目录是C:\Program Files (x86)\scala,然后将“C:\Program Files (x86)\scala\bin;”加到环境变量path中
进入cmd 界面测试Scala 是否安装成功:
C:\Users\admin>scala
Welcome to Scala version 2.10.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_7
Type :help for more information.
第三步: 配置Spark环境变量
(1)下载Spark
下载地址:http://spark.apache.org/downloads.html
下载相应Hadoop对应的版本,比如spark-1.6.2-bin-hadoop2.6.tgz,spark版本是1.6.2,对应的hadoop版本是2.6
(2)下载完成后解压,配置Spark的环境变量(以Windows为例)
新增SPARK_HOME 变量,值:C:\Apache Spark\spark-1.6.2-bin-hadoop2.6
新增SPARK_CLASSPATH 变量,值:;C:\Apache Spark\spark-1.6.2-bin-hadoop2.6\lib\spark-assembly-1.6.2-hadoop2.6.0.jar;
增加PATH变量,补充:;C:\Apache Spark\spark-1.6.2-bin-hadoop2.6\bin
第四步:安装Hadoop工具包
Spark是基于Hadoop之上的,运行过程中会调用相关Hadoop库,如果没配置相关Hadoop运行环境,会提示相关出错信息,虽然也不影响运行。Windows下开发Spark不需要在本地安装Hadoop,但是需要winutils.exe、hadoop.dll等文件。
(1)下载Windows下Hadoop工具包(分为32位和64位的),比如hadoop-2.6.0.tar.gz
下载地址:https://github.com/sdravida/hadoop2.6_Win_x64/tree/master/bin
https://www.barik.net/archive/2015/01/19/172716/
(2)下载完成后解压,配置Hadoop的环境变量(以Windows为例)
在本地新建一个hadoop目录,其中必须包含有bin目录,例如“D:\spark\hadoop-2.6.0\bin”,然后将winutil等文件放在bin目录下
将相关库添加到系统Path变量中:D:\hadoop-2.6.0\bin;同时新建HADOOP_HOME变量,变量值为:D:\hadoop-2.6.0
第五步:安装Eclipse
在官网下载Eclipse,解压缩到本地后直接使用即可。
第六步:安装Eclipse Scala IDE插件
(1)下载Eclipse Scala IDE插件
下载地址:Scala IDE(for Scala 2.9.x and Eclipse Juno)
http://www.scala-lang.org/download/2.7.6.final.html
(2)安装Scala 插件
1.将Eclipse Scala IDE插件中features和plugins两个目录下的所有文件拷贝到Eclipse解压后所对应的目录中。
2.重新启动Eclipse,点击Eclipse右上角方框按钮,如下图所示,展开后点击“Other….”,查看是否有“Scala”一项,若有则可直接点击打开,否则进行下一步操作。
3.在Eclipse中,依次选择“Help” –> “Install New Software…”,在弹出的对话框里填入http://download.scala-ide.org/sdk/e38/scala29/stable/site,并按回车键,可看到以下内容,选择Scala IDE for Eclipse 和Scala IDE for Eclipse development support 即可完成Scala 插件在Eclipse上的安装(由于上一步已经将jar包拷贝到Eclipse中,安装很快,只是疏通一下)。
安装完后,再操作一遍步骤2便可。
使用Java语言进行Spark程序开发
1.新建java工程
2.将Spark开发程序包“spark-assembly-1.6.2-hadoop2.6.0.jar”添加到工程中,作为三方依赖库
使用Java语言进行Spark Standalone模式应用程序开发
1. 创建Maven Project,依次选择File->New->Other->Maven Project
2. 编写Java源程序
/* SimpleApp.java */ import org.apache.spark.api.java.*; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.Function; public class SimpleApp { public static void main(String[] args) { String logFile = "file:///spark-bin-0.9.1/README.md"; SparkConf conf =new SparkConf().setAppName("Spark Application in Java"); JavaSparkContext sc = new JavaSparkContext(conf); JavaRDD<String> logData = sc.textFile(logFile).cache(); long numAs = logData.filter(new Function<String, Boolean>() { public Boolean call(String s) { return s.contains("a"); } }).count(); long numBs = logData.filter(new Function<String, Boolean>() { public Boolean call(String s) { return s.contains("b"); } }).count(); System.out.println("Lines with a: " + numAs +",lines with b: " + numBs); } }
3. 修改pom.xml添加依赖包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.cas.siat.dolphin</groupId> <artifactId>spark.SimpleApp</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spark.SimpleApp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>1.0.2</version> </dependency> </dependencies> </project>
4. 编译打包
分别执行Maven clean、Maven install,这样在工程项目下的target目录中会生成项目的jar包,如下图:
5. 运行Spark应用
上传编译好的jar包至spark集群client,执行以下命令运行程序
./spark-submit --class "foo.App" --master spark://172.21.5.235:7077 /home/hadoop121/Dolphin/Spark1.0.2/spark.SimpleApp-0.0.1-SNAPSHOT.jar
6.执行结果
Web UI结果如下:
搭建spark maven项目程序
第一步:创建自己的spark maven项目,勾选create a simple project
第二步:如图,其中Packaging即maven生成的包,这里要选择jar,因为spark程序一般是打包为jar包的
第三步:添加spark的jar包到刚才新建的maven项目的build path中,找到集群安装的spark安装目录,在lib目录下会看到jar包
第四步:pom中添加自己的spark、hadoop maven依赖,例如:
第五部:spark程序的入口是main函数,至此可以编写程序代码并运行和调试