初识大数据之Spark,Flink

1.大数据基础介绍

在学习spark之前,本人对大数据相关的知识也了解的很少,所以在学习spark的时候,也对比着Hadoop一些基础的知识进行学习,
首先介绍一下大数据数据的由来。比较正统的说法是这么说的:大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。我所理解的就是在信息化处理的社会,各种消息呈现指数性爆炸式的增长,常规的信息处理已经无法满足现状,需要一种新的处理模式才能对这些数据进行优化和存储。
Hadoop最重要的两个概念就是 HDFS 和 MapReduce.HDFS为海量的数据提供了存储,MapReduce为数据提供了计算。

2. Spark 基础介绍

Spark 的认识

Spark和Hadoop一样都是由Apache基金会发布的开源项目,相比Hadoop,Spark有一个非常明显的优点就是他可以在内存中进行计算,及时的依赖磁盘进行读写,相比MapReduce每次将读写的数据存储到磁盘中,极大的提高了运算的效率。

Spark 的四个特性 :高效性,易用性,通用性,兼容性
  • 高效性 因为其基于内存进行运算的特点,运算的效率远远大于Hadoop的MapReduce
  • 易用性 Spark支持多种编程语法,包括 python,Scala,Java,还支持交互式的python和Scala的shell
  • 通用性 Spark包含了 SparkSQL(交互式查询),Spark Streaming(实时流处理),Spark MLlib(机器学习), GraphX(图计算), 这些不同类型的处理可以在同一个应用中进行无缝的使用,Spark为这些提供了统一的解决方案。
  • 兼容性 Spark可以与其他很多的开源产品进行合作,包括Hadoop中的YARN.并且可以处理所有Hadoop支持的数据。
Spark 的组成

Spark组成(BDAS) 全称伯克利数据分析线,通过大规模集成算法,机器,人之间展现大数据应用的一个平台,主要由一下部分组成

  • SparkCore : 将分布式数据抽象成 弹性分布式数据集(RDD)
  • SparkSQL : 是 Spark 操作结构化数据的程序包
  • SparkStreaming:是Spark 提供的一个实时数据进行流式计算的组件
  • MLlib: 是学习机器语法的算法的实现库
  • GraphX:提供的一个分布式图计算框架
  • BlinkDB:用于在海量数据中进行SQL交互的近似查询引擎
  • Tachyon :以内存为中心高容错的分布式文件系统
Spark 的小结

在对Spark的部分基础知识进行学习之后,我可能记住的唯一知识就是Spark的数据处理速度比Hadoop的Map Reduce快,主要的原因就是Spark将运算过程中产生的中间数据存储到内存当中,减少了磁盘的读写次数,也间接减轻了IO流读写的压力。至于其他的包括Sparkcore,SparkStreaming,
SparkSQL等的知识就只是有了那么一丝的印象,我本来是准备自己搭建一个环境进行学习的,因为只有实践才可以学习到属于自己的知识。但是因为工作比较忙的原因,这个也一直搁浅着,不过学习是一件漫长的事情,接下来需要继续坚持,继续努力。下一次关于Spark 的介绍可能会有点好料,这一次就是结合网上提供的资料和自己接触的内容对这段时间的学习进行了总结。

3. Flink 基础介绍

Flink 的认识

前面简单介绍了 Hadoop 和 Spark ,从中我们知道 二者之间的区别。Hadoop的 MapReduce是基于磁盘进行运算的,Spark是基于内存进行运算的,而Flink 也可以基于内存对数据进行处理,Flink主要的特点就是它是一个针对流处理和批处理的分布式处理引擎,其主要的应用场景就是流数据,换句话说,他会把所有的任务当作流来处理。

Flink的基础概念
  • Client :Client负责将任务提交给 JobManager
  • JobManager: Jobmanager 负责将任务分发给Taskmanager
  • TaskManager : TaskManager 会心跳的汇报任务状态
Flink 的特点
  • 支持迭代运算
  • Flink 在jvm 内部实现了自己的内存管理
  • 支持程序自动优化,避免特定情况下shuffle等
  • 运行时同时支持 batch on Streaming 和 Streaming处理
  • 支持有状态计算的 Exactly-once语义
  • 支持带有事件时间的窗口操作
  • 支持高吞吐,低延迟,高性能的流处理
  • 支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作
  • 支持具有Backpressure功能的持续流模型
  • 支持基于轻量级分布式快照(Snapshot)实现的容错
Flink 的小结

Flink 在进行数据处理的过程中,有自己独特的优势,比如在进行一些环形的迭代任务。,另外Flink没有将内存全部交给应用层,相比Spark来说,这也是为什么 Flink不会出现 OOM (out of memory)
的原因

4. Spark Flink 对比和总结

Spark 是一种快速的,通用的计算集群框架,提出的最抽象概念(还没了解到有多抽象)是弹性分布式数据集(RDD),他是一个元素集合,被划分到集群的各个节点上可以并行操作,而Flink是可扩展的
批处理和流式数据处理的数据处理平台。根据网上的资料,在Hadoop的yarn环境测试下,因为Spark和Flink基于内存运算的特点,处理速度远超过map Reduce,而Flink的处理速度也略快Spark的处理速度。在迭代次数增加越多的时候,这种差异就越明显。而在进行流式计算的时候,Spark和Flink的
速度相差不大,有区别的是,Flink支持毫秒级的毫秒级运算,Spark 只支持秒级的运算。
有关Spark和Flink的知识,我懂得的并没有那么多,这段时间利用空闲之余了解到的一些资料也非常的薄弱。在这里向看到这里的读者说一声抱歉~~.在了解这些基础资料的时候,越了解越是感觉到这个门槛的难度非常大,也曾想过换一种方向,但是总是舍不得。也常常暗示自己,现在还年轻,多学点总是没坏处的。今天总结的三个方向,Hadoop,Spark,Flink ,每一个都是需要值得多年研究学习的知识,远不是我一个还没入门的菜鸟驾驭的,但是我的导师告诉我,前期因为了解的少,可以抱着对比的心态去学习这些大数据相关的知识。虽然现在脑袋乱成了浆糊,但是也总好过空空如也的感觉_~_…,
这边文章写起来挺水的,没有对这些知识进行总结,也没有什么个人的分析或者心得。但也算是对自己这段时间的一个收尾吧。等待下个月再度写起总结的时候,希望不再像现在这般迷茫。最后一句话:加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值