#Spark# #大数据# #Hadoop# #streaming# #分布式计算#

Spark:基于内存的高速集群计算框架。对mapreduce进行优化,在内存中进行迭代运算。可以使用Java,Python,Scala等多种语言开发。Scala:交互式语言,可直接用于Spark编程。

适用:实时性高,数据量不是特别大。多次操作特定数据集。

不适用:异步细粒度更新。

1.1 功能、作用

RDD:Resilient Distributed Datasets,弹性分布式数据集。要求数据稳定。变换操作。

Spark SQL:使用DataFrame可以操作RDD、JSON、Hive、MySQL等。是Hive、Pig的替代品。

Spark Streaming:流计算框架。将流数据按时间(0.5s~2s)划分为RDD进行批处理运算(Spark)。与Storm相比,延迟稍高(storm 100ms),吞吐量高(是storm的2~5倍,100个节点的4核集群Spark处理速度6GB/s)。是Storm的替代品。

GraphX:图计算框架。将大图划分为小图RDD进行批处理运算(Spark)。

1.2 特点

1、速度快

spark比mapreduce在内存中快100倍,比mapreduce在磁盘中快10倍。

2、易用性

可以快速开发一个spark应用程序,通过java、scala、python、R、sql不同语言开发代码程序

3、通用性

spark框架是一个生态系统,可以通过不同子项目sparksql、sparkStreaming、Mlib、Graphx应用到不同的应用场景。

4、兼容性

spark任务就是一个计算程序,哪里可以给当前这个程序提供对应的计算资源,我们就可以把程序提交到哪里去。

yarn

spark程序可以提交到yarn中去运行,整个任务的资源分配由resourcemanager去负责

standalone

它是spark自带的集群模式,整个任务的资源分配由Master去负责

mesos

它是一个apache开源类似于yarn的资源管理平台

1.3 架构

Spark Core是Spark的核心计算引擎,提供了任务调度、内存管理、错误恢复、与存储系统交互等模块。其中的弹性分布式数据集(RDD),是计算时的主要编程抽象,基于RDD对数据进行创建、操作与计算。

Spark SQL用于对结构化数据进行处理,它提供了DataFrame的抽象,作为分布式平台数据查询引擎,可以在此组件上构建大数据仓库。DataFrame是一个分布式数据集,在概念上类似于传统数据库的表结构,数据被组织成命名的列,DataFrame的数据源可以是结构化的数据文件,也可以是Hive中的表或外部数据库,也还可以以是现有的RDD。Spark SQL是用来操作结构化数据的程序包,支持多种数据源(Hive表、Parquet、JSON),可以基于Spark SQL进行数据的查询,为数据计算提供数据入口。

Spark Streaming是对实时数据进行流式计算的组件,比如处理服务器日志或者消费消息队列。

Mllib作为Spark组件中机器学习的程序库,具有包括分类、回归、聚类、协同过滤等算法。

GraphX是用来操作图的程序库、可以并行进行图计算,并支持常用的图算法。

Cluster Manager:在standalone模式中即为Master主节点,控制整个集群,监控worker。在YARN模式中为资源管理器

Worker节点:从节点,负责控制计算节点,启动Executor或者Driver。

Driver: 运行Application 的main()函数

Executor:执行器,是为某个Application运行在worker node上的一个进程。

详细说明:

Application: Appliction都是指用户编写的Spark应用程序,其中包括一个Driver功能的代码和分布在集群中多个节点上运行的Executor代码

Driver: Spark中的Driver即运行上述Application的main函数并创建SparkContext,创建SparkContext的目的是为了准备Spark应用程序的运行环境,在Spark中有SparkContext负责与ClusterManager通信,进行资源申请、任务的分配和监控等,当Executor部分运行完毕后,Driver同时负责将SparkContext关闭,通常用SparkContext代表Driver

Executor: 某个Application运行在worker节点上的一个进程, 该进程负责运行某些Task, 并且负责将数据存到内存或磁盘上,每个Application都有各自独立的一批Executor, 在Spark on Yarn模式下,其进程名称为CoarseGrainedExecutor Backend。一个CoarseGrainedExecutor Backend有且仅有一个Executor对象, 负责将Task包装成taskRunner,并从线程池中抽取一个空闲线程运行Task, 这个每一个oarseGrainedExecutor Backend能并行运行Task的数量取决与分配给它的cpu个数。

Cluter Manager:指的是在集群上获取资源的外部服务。目前有三种类型

Standalon : spark原生的资源管理,由Master负责资源的分配

Apache Mesos:与hadoop MR兼容性良好的一种资源调度框架

Hadoop Yarn: 主要是指Yarn中的ResourceManager

Worker: 集群中任何可以运行Application代码的节点,在Standalone模式中指的是通过slave文件配置的Worker节点,在Spark on Yarn模式下就是NoteManager节点

Task: 被送到某个Executor上的工作单元,但hadoopMR中的MapTask和ReduceTask概念一样,是运行Application的基本单位,多个Task组成一个Stage,而Task的调度和管理等是由TaskScheduler负责

Job: 包含多个Task组成的并行计算,往往由Spark Action触发生成, 一个Application中往往会产生多个Job

Stage: 每个Job会被拆分成多组Task, 作为一个TaskSet, 其名称为Stage,Stage的划分和调度是有DAGScheduler来负责的,Stage有非最终的Stage(Shuffle Map Stage)和最终的Stage(Result Stage)两种,Stage的边界就是发生shuffle的地方

DAGScheduler: 根据Job构建基于Stage的DAG(Directed Acyclic Graph有向无环图),并提交Stage给TASkScheduler。 其划分Stage的依据是RDD之间的依赖的关系找出开销最小的调度方法,如下图

mllib逻辑回归 spark_Spark架构详解——分布式流计算内存批处理迭代运算框架相关推荐

  1. 逻辑回归梯度下降法详解

    引言 逻辑回归常用于预测疾病发生的概率,例如因变量是是否恶性肿瘤,自变量是肿瘤的大小.位置.硬度.患者性别.年龄.职业等等(很多文章里举了这个例子,但现代医学发达,可以通过病理检查,即获取标本放到显微 ...

  2. mllib逻辑回归 spark_Spark mllib 逻辑回归

    逻辑回归 逻辑回归其实是一个分类算法而不是回归算法.通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假).简单来说,它就是通过拟合一个逻辑函数(logit fuctio ...

  3. mllib逻辑回归 spark_Spark MLlib学习——分类和回归

    本章节介绍了分类和回归的算法.它还包括讨论特定类别的算法部分,如:线性方法,树和集成. 下面是整个API Doc中的内容框架,这里不会每个都详细介绍,主要会把用到的介绍出来,后续用到的再陆续添加.(下 ...

  4. mllib逻辑回归 spark_Spark Mllib中逻辑回归

    1相关参数设置 <1> setMaxIter():设置最大迭代次数 <2> setRegParam(): 设置正则项的参数,控制损失函数与惩罚项的比例,防止整个训练过程过拟合, ...

  5. 【机器学习算法笔记系列】逻辑回归(LR)算法详解和实战

    逻辑回归(LR)算法概述 逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法. 逻辑 ...

  6. kvm架构详解--理解CPU、内存、IO虚拟化技术、处理器硬件支持

    1. 简介 当前的主流虚拟化实现技术分为两种: VMM(虚拟化监控器)运行在硬件平台上,控制所有硬件并管理guest os.guest os运行在比VMM更高的级别.例如xen. VMM运行在宿主操作 ...

  7. 大型分布式架构详解:架构模式+敏捷性+可扩展+案例等

    大型分布式架构详解:架构模式+敏捷性+可扩展+案例等 本篇是大型分布式网站架构的技术总结篇. 主要对大型分布式架构中涉及的架构模式.高性能.高可用.可伸缩.敏捷性.可扩展等技术点进行简要总结,对大型分 ...

  8. SOA(Service-Oriented Architecture)面向服务的分布式架构详解

    导语:SOA作为一种面向服务的架构,是一种软件架构设计的模型和方法论.从业务角度来看,一切以最大化"服务"的价值为出发点,SOA利用企业现有的各种软件体系,重新整合并构建起一套新的 ...

  9. SOA面向服务的分布式架构详解

    导语: SOA作为一种面向服务的架构,是一种软件架构设计的模型和方法论.从业务角度来看,一切以最大化"服务"的价值为 出发点,SOA利用企业现有的各种软件体系,重新整合并构建起一套 ...

最新文章

  1. Flink 异步IO访问外部数据(mysql篇)
  2. 他们的背后,是我们!
  3. linux系统root默认密码是多少钱,linux root默认密码忘记后的解决方法
  4. 基于Nginx的媒体服务器技术
  5. mysql505复位密码_mysql5 如何复位根用户密码[官方文档]
  6. php超市管理系统论文,超市管理系统的设计与实现
  7. 华为5G微交易修复版源码 K线/结算全修复 去短信+去邀请码
  8. vuex状态持久化_Vuex持久化存储之vuex-persist
  9. 收下这份说明书,原来迈进智能计算的大门如此简单
  10. RHEL5.8安装telnet服务
  11. 【转】MySQL索引和查询优化
  12. Leetcode 刷题笔记(二十九) ——动态规划篇之子序列问题:编辑距离
  13. 谷歌字典mac客户端
  14. 微信小程序上传图片到服务器(java后台以及使用springmvc)
  15. 解决uniapp用了textarea标签设置了边框,右边边框溢出手机屏幕问题
  16. vulnhub之CengBox3
  17. 【0109】Linux系统监测工具sysstat介绍
  18. 七款好用的Linux防火墙
  19. 转:陈永康谈物联网测试
  20. 用Python绘制专业的K线图【含源代码】

热门文章

  1. 智点财务软件记账凭证的录入
  2. 洛谷U4727小L的二叉树[树转序列 LIS]
  3. 隐藏Nginx和PHP版本号
  4. Hibernate二级缓存的使用
  5. scala_until
  6. web开发过程中经常用到的一些公共方法及操作
  7. 【哈佛商学院和斯坦福要求学生必看的20部电影】中/英字幕
  8. java rmi 原理和使用浅析
  9. ApiDoc官方文档
  10. centos系统为php安装memcached扩展步骤