Spark学习笔记0——简单了解和技术架构
目录
Spark学习笔记0——简单了解和技术架构
笔记摘抄自 [美] Holden Karau 等著的《Spark快速大数据分析》
什么是Spark
Spark 是一个用来实现快速而通用的集群计算的平台。
- 扩展了广泛使用的MapReduce 计算模型
- 能够在内存中进行计算
- 一个统一的框架简单而低耗地整合各种处理流程
- 接口非常丰富
技术架构和软件栈
Spark 的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎
Spark 项目还包含多个紧密集成的组件,这些组件关系密切并且可以相互调用
各组件间密切结合的设计原理的优点:
- 软件栈中所有的程序库和高级组件都可以从下层的改进中获益
- 只需要一套软件系统,运行整个软件栈的代价变小了
- 能够构建出无缝整合不同处理模型的应用(例如机器学习和数据分析同时进行)
Spark Core
- Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块
- Spark Core 中包含了对 RDD1 的 API 定义
Spark SQL
Spark 用来操作结构化数据的程序包
- 可以使用 SQL 和 Apache Hive 版本的SQL 方言(HQL)来查询数据
- 支持多种数据源(比如Hive 表、Parquet 以及JSON 等)
- 支持开发者将SQL 和传统的 RDD 编程的数据操作方式相结合,使用 Python、Java 或 Scala 在单个应用中同时使用 SQL 和复杂的数据分析
Spark Streaming
Spark Streaming 是Spark 提供的对实时数据进行流2式计算的组件
- Spark Streaming 提供了用来操作数据流的API,并且与Spark Core 中的RDD API 高度对应
- 从底层设计来看,Spark Streaming 支持与 Spark Core 同级别的容错性、吞吐量以及可伸缩性
MLlib
一个提供常见的机器学习(ML)功能的程序库
- MLlib 提供了很多种机器学习算法
- 提供了一些更底层的机器学习原语(包括一个通用的梯度下降优化算法)
P.s. 所有这些方法都被设计为可以在集群上轻松伸缩的架构
GraphX
GraphX 是用来操作图(比如社交网络的朋友关系图)的程序库
- 可以进行并行的图计算
- 扩展了Spark 的RDD API,能用来创建一个顶点和边都包含任意属性的有向图
- 支持针对图的各种操作以及一些常用图算法
集群管理器
- Spark 支持在各种集群管理器(cluster manager)上运行,包括Hadoop YARN、Apache Mesos
- Spark 自带的一个简易调度器,叫作独立调度器
受众
- 数据科学家——数据科学应用
- 工程师——数据处理应用
起源和发展
Spark学习笔记0——简单了解和技术架构的更多相关文章
- spark学习笔记总结-spark入门资料精化
Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用. ...
- Spark学习笔记3(IDEA编写scala代码并打包上传集群运行)
Spark学习笔记3 IDEA编写scala代码并打包上传集群运行 我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包 上传至集群,来检验一下我们的sp ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- Spark学习笔记2(spark所需环境配置
Spark学习笔记2 配置spark所需环境 1.首先先把本地的maven的压缩包解压到本地文件夹中,安装好本地的maven客户端程序,版本没有什么要求 不需要最新版的maven客户端. 解压完成之后 ...
- Spark学习笔记-GraphX-1
Spark学习笔记-GraphX-1 标签: SparkGraphGraphX图计算 2014-09-29 13:04 2339人阅读 评论(0) 收藏 举报 分类: Spark(8) 版权声明: ...
- Spark学习笔记3——RDD(下)
目录 Spark学习笔记3--RDD(下) 向Spark传递函数 通过匿名内部类 通过具名类传递 通过带参数的 Java 函数类传递 通过 lambda 表达式传递(仅限于 Java 8 及以上) 常 ...
- Spark学习笔记2——RDD(上)
目录 Spark学习笔记2--RDD(上) RDD是什么? 例子 创建 RDD 并行化方式 读取外部数据集方式 RDD 操作 转化操作 行动操作 惰性求值 Spark学习笔记2--RDD(上) 笔记摘 ...
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
- Spark学习笔记之SparkRDD
Spark学习笔记之SparkRDD 一. 基本概念 RDD(resilient distributed datasets)弹性分布式数据集. 来自于两方面 ① 内存集合和外部存储系统 ② ...
随机推荐
- 05_Tutorial 5: Relationships & Hyperlinked APIs 关系和超链接
1.关系和超链接 0.文档 https://www.django-rest-framework.org/tutorial/5-relationships-and-hyperlinked-apis/ h ...
- 57、springmvc-整合
57.springmvc-整合 57.1 创建Spring MVC Annotation项目 <?xml version="1.0" encoding="UTF-8 ...
- SublimeText 括号插件 Bracket Highlighter高亮设置
1. ctrl + shift + p,打开命令面板,输入install,在菜单中选择Package Control:Install Package如图 2. 步骤1后弹出的命令输入框中 输入:Bra ...
- &和&&,|和||的用法区别
&和&&的区别是,&会执行两边,不管第一个是否成立&&只会执行一边,如果第一个条件为假,则不会走第二个条件举例public class Test2{ p ...
- Mysql存储过程查询数据插入别的表里。
DELIMITER// CREATE PROCEDURE setRoomManger2() BEGIN ); ; DECLARE cur CURSOR FOR SELECT roomid FROM n ...
- jQuery相关方法8-----解绑事件
一.解绑事件方法unbind() 用什么方式绑定的事件,最好用对应的方式解绑事件 unbind("事件名字")括号里写上事件名字,就会解除这个事件 unbind()括号里没有参数就 ...
- 为什么深度(Ubuntu)Linux挂载NTFS分区只读不可写?
如前所述,经扩展,Dell Vostro 1520笔记本电脑拥有了两块硬盘. 本着旧物利用的心思,在其中一块256GiB固态盘上安装了深度linux,同时挂载另一块2TiB机械盘作为存储盘. 这块 ...
- loj #2319
noip2017列队 - resolve 标签:题解 \(n * m\) 的矩阵,每个元素 \((i, j)\) 的标号为 \((i - 1) * m + j\), 每次给出 \((x, y)\), ...
- 【原创】go语言学习(十五)IO操作2
目录 文件打开和读写 读取压缩文件 bufio原理和cat命令实现 defer详解 文件打开和读写 1. 文件是存储在外部介质上的数据集合. A. 文件分类:文本文件和二进制文件 B. 文件存取方式: ...
- LOJ#2977. 「THUSCH 2017」巧克力(斯坦纳树+随机化)
题目 题目 做法 考虑部分数据(颜色较少)的: 二分中位数\(mid\),将\(v[i]=1000+(v[i]>mid)\) 具体二分操作:然后求出包含\(K\)种颜色的联通快最小的权值和,判断 ...