您的位置:首页 > 其它

Spark1.1.1官网文档翻译1前言部分

2014-12-19 13:46 295 查看
地址:spark.apache.org/docs/latest/index.html

关于环境
Spark可以运行在Windows和所有类Linux操作系统之上(比如Linux和MacOS)可以很简单的进行单机运行,只要你的机子里面装好了java环境,配置好了PATH和JAVA_HOME变量

Spark1.1运行在java6以上版本,Python2.6以上版本,以及Scala2.10以上的版本中

程序的启动和运行

Spark自带了很多Scala、java、Python示例,在example/src/main目录下,运行方式是

/run-example <class> [params]

例如:./bin/run-exampleSparkPi 10

也可以使用scala shell来进行后台程序的交互

./bin/spark-shell --master local[2]

--master 选项用于设置一个本地或者是集群的方式进行程序的启动,你可以使用local作为测试,local
等于使用N个线程进行运行,更多的选项,请参考--help选项

Spark也使用pythonAPI,启动时候使用bin/pyspark

./bin/pyspark --master local[2]

运行python程序

./bin/spark-submitexamples/src/main/python/pi.py 10

集群模型
Spark系统在集群上独立运行,通过SparkContext对象进行协调工作(称为driver program)具体点说,通过SparkContext,可以以多种形式连接到ClusterManager进行管理(不论是Spark自己的ClusterManager还是Yarn或者Mesos)并分配集群间运行所需的资源。第一次连接时,Spark将记录集群运行和存储过程中的各个节点,下一步,它会将应用程序(JAR、Python文件,通过SparkContext)下发给执行者(Executors),最后,通过SparkContext去启动任务(Tasks)执行



1、每个应用程序有自己的执行过程,并留了整个应用程序的时间和运行在多个线程的任务。这种隔离应用程序相互的利益,在调度一边(每个调度器(DriverSchedules)安排自己的任务(tasks))和执行者(executor)一边(任务运行在不同的系统以及不同的JVM上面)。然而,这也意味着数据没有写入到外部存储系统前不能在不同的Spark应用程序间进行共享(Spark的SparkContext实例间)

2、Spark对潜在的集群管理不可知,只要能够获得执行过程并且能够通讯,就可以很轻易的

运行程序,无论是在ClusterManager还是其他支持的环境下(比如Yarn,Mesos)

3、Driver Schedules 任务在集群中,运行在各自的工作节点,最好在同一局域网,如果你将执行请求发送到远程的集群,最好是打开一个RPC控制提交属性去在一个远程的节点去执行。

ClusterManager类型

三种类型

1、standalone 一个简单的内置ClusterManager用于Spark的应用部署

2、ApacheMesos 一个综合的ClusterManager可以进行Hadoop MapReduce和服务应用的执行

3、HadoopYarn Hadoop2中的ResourceManager

还有可能在不久的将来提供AmazonEC2环境的类型

提交任务

应用程序可以使用任意类型的spark-submit脚本来提交到集群中,请参考相关章节
http://spark.apache.org/docs/latest/submitting-applications.html
监测

每一个driver program拥有一个web ui 在4040端口上面,上面显示各种信息比如任务、执行情况、存储情况等,使用浏览器访问http://<driver-node>:4040查看监测界面,参考监测指南相关章节
http://spark.apache.org/docs/latest/monitoring.html
作业调度

Spark的资源分配的程序控制(在集群管理层面上)和应用程序的控制(如果多个计算在同一SparkContext上)请参考作业调度概述
http://spark.apache.org/docs/latest/job-scheduling.html
名词解释

Applicetion

用户在Spark上面建立的程序和执行环境

Application Jar

一个jar包文件用于封装用户的Spark程序,一般情况下,用户希望创建一个超级jar包用于封装运行时的依赖包,但是用户的包不应该包含hadoop以及spark的lib,这些在运行时会添加

DriverProgram

Main方法用于创建SparkContext以及运行的过程代码

ClusterManager

一个外部的服务用于在集群上面获取资源(standaloneManager、Mesos、Yarn)

DeployMode

程序运行过程时的区别,在"cluster"模式下,在集群上面展开,在"client"模式下,在集群外面提交

WorkerNode

在集群中运行程序的任意节点

Executor

每个程序有自己的执行者,在WorkerNode中执行应用,运行时的任务和数据保存在内存或者磁盘上。

Task

一个执行者中的任务单位

Job

一个由多任务组成的并行计算,得到了"Action"响应(比如save,collect)你会在Driver的日志中看到他们

Stage

每个Job得到的分阶段小任务并相互依赖(类似map和reduce)你会在Driver的日志中看到他们

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: