该公司推出的在线项目Spark拥有近1随着时间的推移。有效,Spark事实上,优秀的分布式计算平台,以提高生产力。

开始本篇笔记。此前的研究会Spark研究报告共享出来(由于篇幅的限制,它将被划分成制品),为了帮助刚接触Spark的朋友们尽快入门。

以下開始正文。

1. 项目背景

Spark项目于2009年诞生于UC Berkeley AMP Lab并于2010年正式提交Apache Software Foundation成为开源项目。眼下已经成为Apache下的明星项目,其代码提交活跃度在整个社区的全部项目中名列前茅。

2. Spark的性能

若运算过程所有在内存中完毕,与Hadoop集群支持Map/Reduce的Streaming计算相比。在计算速度方面,Spark会有100x倍的性能提升;即使运算会产出中间文件,速度也有10x倍的提升。

3. 编译

从官网下载合适的Spark版本号,建议下载pre-built版本号,能够省去不少依赖问题。

Installing Doc的build guide是用Maven来编译Spark源代码的,且编译过程中有些细节參数须要指定。这里不再赘述,直接參考官网guide就可以。

4. Spark集群的部署模式

4.1 Spark集群部署模式


眼下支持下面几种部署方式:

1) Standalone模式

将Spark集群单独部署,不与不论什么现有系统耦合,cluster manager由Spark的master实例担任。这是最简单的部署模式。

详细部署时,可启多个master实例,借助zookeeper消除单点故障。从而实现HA:zookeepr选出”现役”的master,其余实例standby,若当前master实例故障,则zookeeper从standby的实例中选新主。

2) Apache Mesos模式

cluster manager由mesos master实例来担任。实现资源分配及任务调度。

3) Hadoop YARN模式

cluster manager由YARN ResourceManager来担任

注意:Spark程序编译时须要引入YARN支持才干应用YARN模式。

关于这3种部署模式的具体说明。可參考官网文档的说明。 

4.2 Spark集群典型结构

Cluster Mode Overview文档可知,一个典型的Spark集群包括的组件例如以下图所看到的。



Spark应用提交Spark集群后。任务脚本中创建的Spark context对象(又称为driver program。事实上是在Sparkclient所在机器上启动的一个JVM进程)会依次运行例如以下步骤:

1) 建立与cluster manager进程的连接

2) 向manager申请任务所需资源(worker节点上的executor进程。实现详细的计算及数据存储)

3) 将应用程序代码(jar或.py文件)发往申请到的executor进程

4) 向executor进程发送由调度器分解job->stages->tasks后的tasks并由后者负责运行

几点补充说明:

1) Spark context无法也无须感知其底层的cluster manager是何种类型(3种可能:Spark standalone/apache mesos/hadoop yarn),仅仅要它能够通过culster manager申请到executor进程。它就能够运行Spark应用。

2) 每一个Spark应用均会申请独立的executor进程(即不同的Spark任务相应的进程间相互独立)。长处:实现应用隔离,从调度端看。不同应用创建各自的Spark context实例,每一个driver仅仅调度自己的任务;从执行端看,不同应用的executor进程执行在各自的JVM上。缺点:若不借助外部存储系统。数据无法在不同的Spark应用间共享。

3) Spark应用申请的executor进程在应用的运行时间内保持alive,且它以multi-threading方式运行详细的计算任务。

4) Spark context实例所属的driver program负责在集群上调度任务。故在部署上,driver的部署节点应尽可能靠近worker节点。最好部署在同一局域网内。

未完待续。下篇笔记将会介绍怎样通过Sparkclient向Spark集群提交计算任务。

【參考资料】

1. Spark Overview

2. Cluster Mode Overview

3. Spark Documentation  PS: 这里有不少从浅到深的Spark资料

========================= EOF ====================

版权声明:本文博主原创文章,博客,未经同意不得转载。

Spark第一个研究笔记1一片 - Spark一个简短的引论的更多相关文章

  1. spark第一篇--简介,应用场景和基本原理

    摘要: spark的优势:(1)图计算,迭代计算(2)交互式查询计算 spark特点:(1)分布式并行计算框架(2)内存计算,不仅数据加载到内存,中间结果也存储内存 为了满足挖掘分析与交互式实时查询的 ...

  2. Spark第一个应用程序

    首先要对源码进行编译,生成对应hadoop版本的spark开发程序jar包,上篇已经写了具体的过程,这里不再赘述. 在安装spark的机器上,下载eclipse-java-x86_64版本,将spar ...

  3. Spark第一周

    Why Scala 在数据集不是很大的时候,开发人员可以使用python.R.MATLAB等语言在单机上处理数据集.但是在大数据时代,数据集少说都是TB.PB级别,此时便需要分布式地处理.相较于上述语 ...

  4. Spark 官方文档(5)——Spark SQL,DataFrames和Datasets 指南

    Spark版本:1.6.2 概览 Spark SQL用于处理结构化数据,与Spark RDD API不同,它提供更多关于数据结构信息和计算任务运行信息的接口,Spark SQL内部使用这些额外的信息完 ...

  5. 通过案例对 spark streaming 透彻理解三板斧之一: spark streaming 另类实验

    本期内容 : spark streaming另类在线实验 瞬间理解spark streaming本质 一.  我们最开始将从Spark Streaming入手 为何从Spark Streaming切入 ...

  6. Spark源码系列(七)Spark on yarn具体实现

    本来不打算写的了,但是真的是闲来无事,整天看美剧也没啥意思.这一章打算讲一下Spark on yarn的实现,1.0.0里面已经是一个stable的版本了,可是1.0.1也出来了,离1.0.0发布才一 ...

  7. Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)论文 | ApacheCN

    Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ...

  8. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  9. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

随机推荐

  1. JVM必备指南(转)

    本文由 ImportNew - xiafei 翻译自 anturis.欢迎加入翻译小组.转载请见文末要求. 简介 Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来 ...

  2. JS 在 HTML 中做加减乘除

    <script type="text/javascript"> function fun(t){ var fa = parseInt(document.getEleme ...

  3. tarjan+缩点

    B - Popular Cows Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Su ...

  4. Linux 安装之U盘引导

    说到装系统最简单的方法无非就是找个系统安装光盘来然后就一步一步慢慢的安装.简单是简单但好似大多数人好像都木有Linux的安装光盘. 因此仅仅能用U盘来模拟光盘的功能来装系统咯. 电脑上装有Window ...

  5. windows phone (15) UI变换上

    原文:windows phone (15) UI变换上 在wp中只要是继承自UIElement 的任何对象都可以应用变换,当然包含Textblock,Rectangle等所有的元素,下面我们使用Tex ...

  6. 三星Samsung 4.4.2该负责人制度,简化名单

    installed uninstalled AccessControl.apk AllshareControlShare.apk AirMotionTryActually.apk AllshareFi ...

  7. 辛星一起了解下后续PHP性能功能

    关于第一个发言,这篇文章是我的原创.但,这些数据不被总结出来我,你可以搜索下"百度project师HDK",这些数据提供了他,我只是给一个总结.因为他很长的文章,我在这里提炼几点. ...

  8. 二分图行列匹配---> hdu2119,hdu1498

    hdu2119 题意:给定一个矩形方格,每个格子里面的数字是0或者1,每次操作可以把一整行或列的1变成0,问最少多少次操作能将1全部变为0 一次可以消除某一行或者某一列的1但是可以这么想,最多有多少个 ...

  9. Windows Phone开发(14):数据模板

    原文:Windows Phone开发(14):数据模板 数据模板,如果你仅仅听到这个名词,你一定很迷惑,什么来的?用来干什么的?不急,亲,今天,我们一起来探索一下吧. 用白话文说,数据模板就是用来规范 ...

  10. 基于opencv在摄像头ubuntu根据视频获取

     基于opencv在摄像头ubuntu根据视频获取 1  工具 原料 平台 :UBUNTU12.04 安装库  Opencv-2.3 2  安装编译执行步骤 安装编译opencv-2.3  參考h ...