子雨大数据之Spark入门教程---Spark入门:Spark的部署模式1.4

el/2024/7/17 20:17:24

本节首先介绍Spark支持的三种典型集群部署方式,即standalone、Spark on Mesos和Spark on YARN;然后,介绍在企业中是如何具体部署和应用Spark框架的,在企业实际应用环境中,针对不同的应用场景,可以采用不同的部署应用方式,或者采用Spark完全替代原有的Hadoop架构,或者采用Spark和Hadoop一起部署的方式。

Spark三种部署方式

Spark应用程序在集群上部署运行时,可以由不同的组件为其提供资源管理调度服务(资源包括CPU、内存等)。比如,可以使用自带的独立集群管理器(standalone),或者使用YARN,也可以使用Mesos。因此,Spark包括三种不同类型的集群部署方式,包括standalone、Spark on Mesos和Spark on YARN。
1.standalone模式
与MapReduce1.0框架类似,Spark框架本身也自带了完整的资源调度管理服务,可以独立部署到一个集群中,而不需要依赖其他系统来为其提供资源管理调度服务。在架构的设计上,Spark与MapReduce1.0完全一致,都是由一个Master和若干个Slave构成,并且以槽(slot)作为资源分配单位。不同的是,Spark中的槽不再像MapReduce1.0那样分为Map 槽和Reduce槽,而是只设计了统一的一种槽提供给各种任务来使用。
2.Spark on Mesos模式
Mesos是一种资源调度管理框架,可以为运行在它上面的Spark提供服务。Spark on Mesos模式中,Spark程序所需要的各种资源,都由Mesos负责调度。由于Mesos和Spark存在一定的血缘关系,因此,Spark这个框架在进行设计开发的时候,就充分考虑到了对Mesos的充分支持,因此,相对而言,Spark运行在Mesos上,要比运行在YARN上更加灵活、自然。目前,Spark官方推荐采用这种模式,所以,许多公司在实际应用中也采用该模式。
3. Spark on YARN模式
Spark可运行于YARN之上,与Hadoop进行统一部署,即“Spark on YARN”,其架构如图9-13所示,资源管理和调度依赖YARN,分布式存储则依赖HDFS。

图9-13 Spark on YARN架构
图9-13 Spark on YARN架构

从“Hadoop+Storm”架构转向Spark架构

为了能同时进行批处理与流处理,企业应用中通常会采用“Hadoop+Storm”的架构(也称为Lambda架构)。图9-14给出了采用“Hadoop+Storm”部署方式的一个案例,在这种部署架构中,Hadoop和Storm框架部署在资源管理框架YARN(或Mesos)之上,接受统一的资源管理和调度,并共享底层的数据存储(HDFS、HBase、Cassandra等)。Hadoop负责对批量历史数据的实时查询和离线分析,而Storm则负责对流数据的实时处理。

图9-14  采用“Hadoop+Storm”部署方式的一个案例
图9-14 采用“Hadoop+Storm”部署方式的一个案例

但是,上面这种架构部署较为繁琐。由于Spark同时支持批处理与流处理,因此,对于一些类型的企业应用而言,从“Hadoop+Storm”架构转向Spark架构(如图9-15所示)就成为一种很自然的选择。采用Spark架构具有如下优点:
*  实现一键式安装和配置、线程级别的任务监控和告警;
*  降低硬件集群、软件维护、任务监控和应用开发的难度;
*  便于做成统一的硬件、计算平台资源池。
需要说明的是,Spark Streaming的原理是将流数据分解成一系列短小的批处理作业,每个短小的批处理作业使用面向批处理的Spark Core进行处理,通过这种方式变相实现流计算,而不是真正实时的流计算,因而通常无法实现毫秒级的响应。因此,对于需要毫秒级实时响应的企业应用而言,仍然需要采用流计算框架(如Storm)。

图9-15 用Spark架构同时满足批处理和流处理需求
图9-15 用Spark架构同时满足批处理和流处理需求

Hadoop和Spark的统一部署

一方面,由于Hadoop生态系统中的一些组件所实现的功能,目前还是无法由Spark取代的,比如,Storm可以实现毫秒级响应的流计算,但是,Spark则无法做到毫秒级响应。另一方面,企业中已经有许多现有的应用,都是基于现有的Hadoop组件开发的,完全转移到Spark上需要一定的成本。因此,在许多企业实际应用中,Hadoop和Spark的统一部署是一种比较现实合理的选择。
由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架YARN之上,因此,可以在YARN之上进行统一部署(如图9-16所示)。这些不同的计算框架统一运行在YARN中,可以带来如下好处:
*  计算资源按需伸缩;
*  不用负载应用混搭,集群利用率高;
*  共享底层存储,避免数据跨集群迁移。

图9-16 Hadoop和Spark的统一部署
图9-16 Hadoop和Spark的统一部署


http://www.ngui.cc/el/5557075.html

相关文章

子雨大数据之Spark入门教程---Spark的安装和使用sbt、maven打包代码 2.1

Spark可以独立安装使用,也可以和Hadoop一起安装使用。本教程中,我们采用和Hadoop一起安装使用,这样,就可以让Spark使用HDFS存取数据。需要说明的是,当安装好Spark以后,里面就自带了scala环境,不…

lxc安装使用教程

LXC基础学习教程 http://17173ops.com/2013/11/14/linux-lxc-install-guide.shtml 如何使用RHEL/CentOS 7安装创建和管理LXC (Linux Containers) http://blog.csdn.net/liumiaocn/article/details/52337479?locationNum5&fps1 LXC命令简单使用说明 http://blog.csdn.net…

lxc基本命令(lxc-checkconfig,lxc-create等命令)

用于判断linux内核是否支持LXC lxc-checkconfig 创建一个容器,其中-n是容器的名字,这里名字用name,-f是容器的配置文档, 保存路径:/usr/share/doc/lxc/examples/ 默认的配置文档是:/etc/lxc/lxc.conf&#…

hadoop2.6单机运行及伪分布式部署运行

Hadoop单机模式运行 Hadoop 默认配置是以非分布式模式运行,即单 Java 进程,方便进行调试。可以执行附带的例子 WordCount 来感受下 Hadoop 的运行。将 input 文件夹中的文件作为输入,统计当中符合正则表达式 wo[a-z.] 的单词出现的次数&#…

机器学习中的有监督学习,无监督学习,半监督学习的区别

在机器学习(Machine learning)领域,主要有三类不同的学习方法: 监督学习(Supervised learning)、 非监督学习(Unsupervised learning)、 半监督学习(Semi-supervised learning), 监督学习:通过已有的一部分输入数据与输出数据之间…

B树、B-树、B+树、B*树 ---浅层次讲解

B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: …

Linux进程管理之“四大名捕”ps、dstat、top、htop

一、四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”、内功卓越的高手“铁手”、腿功惊人的“追命”和剑法一流的“冷血” 本文四大名捕由linux命…

系统级性能分析工具 — Perf详解讲解

从2.6.31内核开始,Linux内核自带了一个性能分析工具perf,能够进行函数级与指令级的热点查找。通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread)&…

hdfs:error Initialization failed for block pool Block pool registering service

一、执行start-dfs.sh后&#xff0c;datenode没有启动 查看日志如下&#xff1a;   2014-06-18 20:34:59,622 FATAL org.apache.Hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool <registering> (Datanode Uuid unassigned) se…

CentOS 开启关闭防火墙

CentOS 6: 1&#xff09; 永久性生效&#xff0c;重启后不会复原 开启&#xff1a; chkconfig iptables on 关闭&#xff1a; chkconfig iptables off 2&#xff09; 即时生效&#xff0c;重启后复原 service iptables status 查看防火墙状态 service iptables …