spark 是基于内存计算的 大数据分布式计算框架,spark基于内存计算,提高了在大数据环境下处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价的硬件上,形成集群。

1. 分布式计算
2. 内存计算
3. 容错
4. 多计算范式

 Messos 作为资源管理框架。相当于yarn,进行资源管理以及调度。
spark生态系统,不提供存储层,可以调用外部存储,例如HDFS
Tachyon 是 分布式内存文件系统,能够缓存数据,并提供数据快速读写。
spark 是核心计算引擎,能够将任务并行化,在大规模集群中进行数据计算。
spark streaming是 流式计算引擎,能够将输入数据切分成小的批次,对每个批次采用spark的计算范式,进行计算。
spark sql 是 sql on hadoop 系统,能够提供交互式查询,以及报表查询,并且可以通过jdbc 调用
graphx 是 图计算引擎,能够完成大规模图运算。
mlib 是 机器学习库,提供聚类,分类,以及推荐的基本学习算法。

spark优势

 计算范式支持 打造多栈计算范式的高效数据流水线
处理速度,轻量级快速处理
易用性, 分布式RDD抽象,spark支持多语言
4 兼容性,与HDFS等存储层兼容

spark的架构

1.spark架构组件简介

spark集群中master负责集群整体资源管理和调度,worker负责带个节点的资源管理, mater ---> slave 模型, Driver程序是应用逻辑执行的起点,而多个Executor用来对数据进行并行处理

spark的构成:
ClusterManager: 在standalone模式中即为: master: 主节点,控制整个集群,监控worker.在yarn模式中为资源管理器.

Worker: 从节点,负责控制计算节点,启动Executor或Driver, 在yarn模式中为nodemanager,负责计算节点的控制。

Driver: 运行application的main()函数并且创建sparkcontext

Executor: 执行器,是为某application运行在worker node上的一个进程,启动进程池运行任务上,每个application拥有独立的一组executors.

sparkcontext: 整个应用的上下文,控制应用的生命周期

RDD: spark的基本计算单元, 一组RDD形成执行的有向无环图RDD Graph。

2.spark 架构图

3. spark集群执行机制

spark的工作机制

spark的调度原理

spark 在 yarn集群搭建详细情况

spark 官方提供4种 集群部署方案

Spark Mesos模式:官方推荐模式,通用集群管理,有两种调度模式:粗粒度模式(Coarse-grained Mode)与细粒度模式(Fine-grained Mode);
Spark YARN模式:Hadoop YARN资源管理模式;
Standalone模式: 简单模式或称独立模式,可以单独部署到一个集群中,无依赖任何其他资源管理系统。不使用其他调度工具时会存在单点故障,使用Zookeeper等可以解决;
Local模式:本地模式,可以启动本地一个线程来运行job,可以启动N个线程或者使用系统所有核运行job;

第一 Stanalone模式集群安装,spark standalone模式的集群由master 与worker节点组成,程序通过与master节点交互相互申请资源,worker节点启动executor运行。

spark官方要求 scala版本为2. 以下,
安装下载安装 [root@spark_master ~]# https://codeload.github.com/scala/scala/tar.gz/v2.12.1 [root@spark_master ~]# tar -zxvf scala-2.12..tar.gz 查看主机名
[root@spark_master ~]# cat /etc/hosts

  192.168.20.213     spark_salve1
  192.168.20.214     spark_salve2

下载spark
[root@spark_manager ~]# wget http://d3kbcqa49mib13.cloudfront.net/spark-2.0.2-bin-hadoop2.7.tgz
[root@spark_manager conf]#  tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz  -C /data/spark
[root@spark_manager conf]#cd /data/spark/conf
[root@spark_manager conf]# 

 spark2.0.2 standalone 集群模式安装
[root@spark_manager conf]# mv slaves.template slaves
[root@spark_manager conf]# mv spark-env.sh.template spark-env.sh
[root@spark_manager conf]# cat slaves
spark_manager
spark_salve1
spark_salve2
[root@spark_manager conf]#mv spark-env.sh.template spark-env.sh
启动集群:

1.启动manager

[root@spark_manager sbin]# ./start-master.sh 

2. 启动slave(workers)
[root@spark_slave1 sbin]# ./start-slave.sh 192.168.20.215:7077
[root@spark_slave2 sbin]# ./start-slave.sh 192.168.20.215:7077

#######################################################################################################################################


spark2.0.2 standalone HA 集群模式安装

  多个slave的情况下自动具备了worker的HA,因为spark会将失败的任务调度到其他worker上执行。但是,master还是有单点的,如果master故障了,那么用户就无法提交新的作业 了。注意,已经提交到worker的作业不受影响。


  spark官方给出了2种解决方法,一个是使用zk做分布式协调,zk选主;另一个是使用基于LOCAL FILE SYSTEM恢复的单节点方案。第二种其实只有1个master实例,当master故障后服务不可用,必须重启master进程,一般在生成系统上是不可接受的,所以我采用的是第一种方式。

一配置 zookeeper:略过

2. 主机名信息:

  192.168.20.215     spark_manager
  192.168.20.213     spark_salve1
  192.168.20.214     spark_salve2
  192.168.20.211    standby_master
  192.168.20.37     zookeeper1
   192.168.20.38      zookeeper2
   192.168.20.39      zookeepe3

第一台spark_manager

[root@spark_manager sbin]# ssh-keygen -t rsa

[root@spark_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.211

[root@spark_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.213

[root@spark_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.214

[root@spark_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.215

第二台spark_manager

[root@standby_master ~]# ssh-keygen -t rsa

[root@standby_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.215

[root@standby_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.213

[root@standby_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.214

[root@standby_manager sbin]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.20.211

[root@spark_manager conf]# mv slaves.template slaves
[root@spark_manager conf]# mv spark-env.sh.template spark-env.sh
[root@spark_manager conf]# cat slaves
spark_salve1
spark_salve2
[root@spark_manager conf]# mv spark-env.sh.template spark-env.sh
[root@spark_manager conf]# cat spark-env.sh
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 -Dspark.deploy.zookeeper.dir=/spark"
[root@spark_manager conf]# scp -r /data/spark  192.168.20.211:/data/
[root@spark_manager conf]# scp -r /data/spark  192.168.20.213:/data/
[root@spark_manager conf]# scp -r /data/spark  192.168.20.214:/data/

[root@spark_manager sbin]# ./start-all.sh

slave 出现

spark_manager不能识别,但是host已经指向了,修改了下面shell 启动脚本主机名更改成IP。

[root@spark_manager data]# vim  /data/spark/sbin/start-slaves.sh

[root@spark_manager sbin]# jps
6867 Worker
6934 Jps
6282 Master

[root@spark_salve1 data]# jps
4019 Jps
3941 Worker

[root@spark_slave2 ~]# jps
2565 Worker
2618 Jps

启动standby_manager 进程

[root@spark_manager data]# vim  /data/spark/sbin/start-slaves.sh

[root@standby_master sbin]# ./start-master.sh

[root@standby_master sbin]# jps
2655 Master
2735 Jps

HA 切换

kill 掉 spark_manager 上的 manager 进程,

查看spark_salve 日志,表示已经切换。

standby_manager 日志。

spark 简介的更多相关文章

  1. (一)Spark简介-Java&Python版Spark

    Spark简介 视频教程: 1.优酷 2.YouTube 简介: Spark是加州大学伯克利分校AMP实验室,开发的通用内存并行计算框架.Spark在2013年6月进入Apache成为孵化项目,8个月 ...

  2. 笔记:Spark简介

    Spark简介 [TOC] Spark是什么 Spark是基于内存计算的大数据并行计算框架 Spark是MapReduce的替代方案 Spark与Hadoop Spark是一个计算框架,而Hadoop ...

  3. Data - Spark简介

    Spark简介 Spark是基于内存计算的大数据并行计算框架,可用于构建大型的.低延迟的数据分析应用程序. HomePage:http://spark.apache.org/ GitHub:https ...

  4. Spark简介安装和简单例子

    Spark简介安装和简单例子 Spark简介 Spark是一种快速.通用.可扩展的大数据分析引擎,目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL.Spark S ...

  5. Spark之 spark简介、生态圈详解

    来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介Spark是加州大学伯克利分校AMP实验室(Algorithm ...

  6. 三、spark简介

    一.简介 spark的官网:http://spark.apache.org/ spark解决了什么问题? 我们都知道hadoop,hadoop以一个非常容易使用的编程模型解决了大数据的两大难题: 1) ...

  7. Spark学习之路(一)—— Spark简介

    一.简介 Spark于2009年诞生于加州大学伯克利分校AMPLab,2013年被捐赠给Apache软件基金会,2014年2月成为Apache的顶级项目.相对于MapReduce的批处理计算,Spar ...

  8. Spark 系列(一)—— Spark简介

    一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目.相对于 MapRedu ...

  9. 入门大数据---Spark简介

    一.简介 Spark 于 2009 年诞生于加州大学伯克利分校 AMPLab,2013 年被捐赠给 Apache 软件基金会,2014 年 2 月成为 Apache 的顶级项目.相对于 MapRedu ...

随机推荐

  1. node+fis3搭建

    node安装: 到https://nodejs.org/en/download/releases下载编译好的包, 如:https://nodejs.org/download/release/v4.4. ...

  2. Daily Scrum Meeting ——NinthDay

    一.Daily Scrum Meeting照片 二.Burndown Chart 三.项目进展 1.用户管理 2.下拉框与界面的整合 四.问题困难 黄志明(PM):Android Studio自带的S ...

  3. 一个列子演示vs2010 c++新特性

    近日托安装雪豹的"福",格了XP装了win7,前段时间看了C++0X标准以及VS2010诱人的新特性,不禁心痒痒在线安装了VS2010,然后手写了这个列子用来测试新增的特性. st ...

  4. python中获取指定目录下所有文件名列表的程序

    http://blog.csdn.net/rumswell/article/details/9818001 # -*- coding: utf-8 -*-#~ #------------------- ...

  5. 【BZOJ】3561: DZY Loves Math VI

    题意 求\(\sum_{i=1}^{n} \sum_{j=1}^{m} lcm(i, j)^{gcd(i, j)}\)(\(n, m<=500000\)) 分析 很显然要死推莫比乌斯 题解 设\ ...

  6. 【BZOJ】3427: Poi2013 Bytecomputer

    题意: 给定一个长度为\(n\)的\(\{-1, 0, 1\}\)组成的序列,你可以进行\(x_i=x_i+x_{i-1}\)这样的操作,求最少操作次数使其变成不降序列.(\(n \le 100000 ...

  7. Django分析之三级下拉菜单选择省/市/县

    今天遇到了一个一直想做却没有机会去做的功能,今天完成了便记录下来. 那这次是具体是个什么功能呢?其实还是很简单的效果,就是在用户注册的时候可以选择省/市/县,很简单的一个小功能. 那现在就开始了~首先 ...

  8. Linux文件系统扩容步骤

    1 扩容前检查 cat /etc/fstab df -h 在扩容之前请确认VG的Free大小,以及文件和文件系统是否达到系统限制 2 系统识别硬盘 #echo "- - -" &g ...

  9. http协议笔记

    协议:双方/多方共同遵守的一个规范.类比生活中协议 理解: webservice=http协议+xml Rest         =http协议+json 开始,客户端和其他服务器都是没有关系的,比如 ...

  10. 1.javascript篇(基础)

    js基础部分 js定义: 1.js是通过浏览器解析,然后由浏览器执行的一种脚本语言2.css控制样式,而js控制行为 基本格式: <script type="text/javascri ...