在进行实际的spark应用程序开发时,常常会利用window环境进行程序开发,开发测试好之后提交到spark集群中利用bin/spark-submit脚本进行程序的发布运行,本教程教将一步一步地教大家如何进行该操作。本教程主要内容如下:
window开发环境说明
spark集群运行环境说明
scala ide for eclipse中spark程序开发
利用spark-submit脚本提交到spark集群当中运行
(1)scala-ide eclipse ,版本号见下图

(2) java版本号 jdk 1.7
(3) scala 版本号 2.10.4
(1)操作系统:ubuntu 10.04
(2) java与scala版本号与windows上一致
(3) hadoop 版本 hadoop 2.2.0
(4) spark 版本 spark 1.1.0
配置如下:
ip地址
主机名
运行进程
192.168.1.104
cluster04
quorumpeermain(zookeeper进程) master(spark master进程) datanode journalnode resourcemanager(yanr资源管理器) nodemanager worker
192.168.1.105
cluster05
namenode quorumpeermain(zookeeper进程) worker(spark worker进程) nodemanager datanode dfszkfailovercontroller(用于实现 namenode ha) journalnode
192.168.1.106
cluster06
namenode quorumpeermain(zookeeper进程) worker(spark worker进程) nodemanager datanode dfszkfailovercontroller(用于实现 namenode ha) journalnode
(1) 在scala ide for eclipse新建一个scala project,全名为:sparkwordcount
(2) 将spark-assembly-1.1.0-hadoop2.2.0.jar导入
(3)工程结构如下图
(4) 将userpurchasehistory.csv上传到hdfs根目录:hadoop fs -put /data/userpurchasehistory.csv /
userpurchasehistory.csv内容如下:
第一列表示客户姓名,第二列表示购买物品,第三列表示物品价格
(4)创建包cn.ml,并新建scala object,全名为purchaseproduct,代码如下:
(5)将工程打包成jar文件:sparkwordcount.jar
(1)将打包好的sparkwordcount.jar文件上传到spark master所在的机器cluster04的根目录上,然后运行下列脚本:
/spark-1.1.0/bin# ./spark-submit –master spark://itcast04:7077 –class cn.ml.purchaseproduct /sparkwordcount.jar
–master 用于指定集群的master
–class 用于指定待运行的主类
(2) 运行结果图