Spark介绍(学习笔记)

夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。
夫学须静也,才须学也,非学无以广才,非志无以成学。淫慢则不能励精,险躁则不能冶性。
年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及。
——诸葛亮《诫子书》
于文章中出现的任何错误请大家批评指出,一定及时修改
有任何想要讨论和学习的问题可联系我:yangmq@aliyun.com

文章目录


Spark简介(学习笔记)


一、Spark简介

  1. Spark是什么?
    Spark是一个快速且通用的集群计算平台

  2. Spark的特点
    Spark是快速的
    Spark扩充了流行的Mapreduce计算模型
    Spark是基于内存的计算
    Spark是通用的
    Spark的设计容纳了其它分布式系统拥有的功能,批处理,迭代式计算,交互查询和流处理等
    优点:降低了维护成本
    Spark是高度开放的
    Spark提供了Python,java,Scala,Sql的APi和丰富的内置库
    Spark和其它的大数据工具整合的很好,包括hadoop,kafka等

二、Spark生态介绍

  1. Spark历史
    Spark诞生于2009年,加州大学伯克利分校RAD实验室的一个研究项目
    最初是基于hadoop mapreduce的
    发现Mapreduce在迭代式计算和交互式上低效,引入了内存存储
    2010年3月份Spark开源
    2011年AMP实验室在Spark上开发高级组件,像Spark Streaming
    2013年转移到了Apache下,不久便成为*项目了
  2. Spark的组件
    Spark包括多个紧密集成的组件
    Spark介绍(学习笔记)
    Spark Core:
    包含了Spark的基本功能,包含任务调度,内存管理,容错机制等
    内部定义了RDDs(弹性分布式数据集)
    提供了很多APIs来创建和操作这些RDDs
    应用场景,为其他组件提供底层的服务
    Spark SQL:
    是Spark处理结构化数据的库,就像Hive SQL,mysql一样
    应用场景,企业中用来做报表统计
    Spark Streaming:
    是实时流处理组件,类似Storm
    Spark Streaming提供了API来操作实时流数据
    应用场景,企业中用来从Kafka接收数据做实时统计
    Mlib:
    一个包含通用机器学习功能的包,Machine learning lib
    包含分类,聚类,回归等,好包括模型评估,和数据导入
    Mlib提供的上面这些方法,都支持集群上的横向扩展
    应用场景,机器学习
    Graphx:
    是处理图的库(例如,社交网络图),并进行图的并行计算
    像Spark Streaming,Spark SQL一样,他也继承了RDD API
    它提供了各种图的操作,和常用的图算法,例如PangeRank算法
    应用场景,图计算
    Cluster manager:
    就是集群管理,Spark自带一个集群管理是单独调度器
    常见集群管理包括Hadoop YARN,Apache Mesos
    紧密集成的优点:
    Spark底层优化了,基于Spark底层的组件,也得到了响应的优化
    紧密集成,节省了各个组件组合使用时的部署,测试等时间
    向Spark增加新的组件时,其它组件,可立刻享用新组件的功能

三、Spark与Hadoop的比较

  1. Hadoop应用场景
    离线处理
    对失效性要求不高
  2. Spark应用场景
    失效性要求高的场景
    机器学习等领域
  3. 比较
    Doug Cutting的观点:
    这是生态系统,每个组件都有其作用,各善其职即可
    Spark不具有HDFS的存储能力,要借助HDFS等持久化数据
    大数据将会孕育出更多的新技术
上一篇:数据实时处理项目实战Spark Streaming第一天——概述


下一篇:Spark3.2教程(八)一个简单的Spark Streaming处理网络流数据