Spark1.1.1官网文档翻译1前言部分
来源:互联网 发布:淘宝客服面试基本问题 编辑:程序博客网 时间:2024/06/06 05:49
地址: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] 等于使用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的日志中看到他们
- Spark1.1.1官网文档翻译1前言部分
- Spark1.1.1官网文档翻译2快速开始
- Spark1.1.1官网文档翻译3任务提交
- Spark1.1.1官网文档翻译4Spark编程指南
- Spark1.1.1官网文档翻译5SparkSQL
- jekyll 官网文档部分翻译
- RT3070AP 部分翻译文档
- kafka部分文档翻译
- OpenSSL部分文档翻译
- Boost-(MSM)元状态机文档翻译-前言
- 苹果官方文档翻译——前言
- Spark1.6.0官方文档翻译01--Spark Overview
- Spark1.6.0官方文档翻译02--spark-submit script
- FTP搜索引擎开发文档前言部分
- MHA文档翻译about部分
- MHA文档翻译Tutorial部分
- MHA文档翻译 配置文件部分
- servlet3.1规范翻译:前言
- plist文件操作方法整理
- Silverligh 自定义的combobox
- json格式数据解析方法整理
- 《老罗的Android之旅》阅读笔记——广播(Broadcast)机制
- Android studio1.0安装教程,下载地址
- Spark1.1.1官网文档翻译1前言部分
- hostapd wpa_supplicant madwifi详细分析(一)——hostapd是干嘛的
- python利用cookie登录网站进行访问
- 文件归档NSKeyedArchiver操作方法整理
- grep用法详解:grep与正则表达式
- 在Windows下C++获得程序路径
- 黑马程序员——Java语言基础——06.集合框架(2)泛型和Map集合
- 内存管理1
- easings缓动函数速查 贝塞尔曲线实例