• Spark第一个研究笔记1一片


    该公司推出的在线项目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 ====================


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

  • 相关阅读:
    【先定一个小目标】在Windows下的安装Elasticsearch
    【先定一个小目标】Windows下Redis的安装使用
    【.net core 跨平台】第一步 在Ubuntu16.04 配置.net core环境
    Caf.CMS是一个免费的、 开源,功能齐全的CMS
    使用MicroService4Net 快速创建一个简单的微服务
    记录-div绝对定位针对手机浏览器的区别
    OS X 下不通过Homebrew安装ASP.NET 5开发环境
    结合谷歌地图多边形(polygon)与Sql Server 2008的空间数据类型计算某个点是否在多边形内的注意事项
    插入排序
    修复lvm的逻辑卷
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4802903.html
Copyright © 2020-2023  润新知