Apache Spark源码分析-- Job的提交与运行,apachespark
Apache Spark源码分析-- Job的提交与运行,apachespark
本文以wordCount为例,详细说明spark创建和运行job的过程,重点是在进程及线程的创建。
实验环境搭建
在进行后续操作前,确保下列条件已满足。
1. 下载spark binary 0.9.1
2. 安装scala
3. 安装sbt
4. 安装java
启动spark-shell单机模式运行,即local模式
local模式运行非常简单,只要运行以下命令即可,假设当前目录是$SPARK_HOME
MASTER=local bin/spark-shell
"MASTER=local"就是表明当前运行在单机模式
local cluster方式运行
localcluster模式是一种伪cluster模式,在单机环境下模拟standalone的集群,启动顺序分别如下
1. 启动master
2. 启动worker
3. 启动spark-shell
master$SPARK_HOME/sbin/start-master.sh
注意运行时的输出,日志默认保存在$SPARK_HOME/logs目录。
master主要是运行类 org.apache.spark.deploy.master.Master,在8080端口启动监听,日志如下图所示
修改配置
1. 进入$SPARK_HOME/conf目录
2. 将spark-env.sh.template重命名为spark-env.sh
3. 修改spark-env.sh,添加如下内容
export SPARK_MASTER_IP=localhostexport
SPARK_LOCAL_IP=localhost运行workerbin/spark-class
org.apache.spark.deploy.worker.Worker spark://localhost:7077 -i 127.0.0.1 -c 1 -m 512M
worker启动完成,连接到master。打开maser的webui可以看到连接上来的worker. Master WEb UI的监听地址是http://localhost:8080
启动spark-shellMASTER=spark://localhost:7077
bin/spark-shell
如果一切顺利,将看到下面的提示信息。
Created spark context..Spark
context available as sc.
可以用浏览器打开localhost:4040来查看如下内容
1. stages
2. storage
3. environment
4. executors
wordcount
上述环境准备妥当之后,我们在sparkshell中运行一下最简单的例子,在spark-shell中输入如下代码
scala>sc.textFile("README.md").filter(_.contains("Spark")).count
上述代码统计在README.md中含有Spark的行数有多少
部署过程详解
Spark布置环境中组件构成如下图所示。
|
评论暂时关闭