|
前言
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
了解过大数据的小伙伴一定都知道MapReduce,kafka,Flink这三种很热门的流式计算框架吧
既然大家已经知道了MapReduce,kafka,Flink对于学好大数据的重要性,就缺少对应的学习资源来学习了吧!别怕小编这里已经给大家整理好啦,总共有20G的资源,希望大家能够喜欢!
总共分为三大部分,那么我们就先从谷歌三宝之一,hadoop中很重要的MapReduce开始讲起吧!
MapReduce
1:MapReduce是干啥的
因为没找到谷歌的示意图,所以我想借用一张Hadoop项目的结构图来说明下MapReduce所处的位置,如下图。
Hadoop实际上就是谷歌三宝的开源实现,Hadoop MapReduce对应Google MapReduce,HBase对应BigTable,HDFS对应GFS。HDFS(或GFS)为上层提供高效的非结构化存储服务,HBase(或BigTable)是提供结构化数据服务的分布式数据库,Hadoop MapReduce(或Google MapReduce)是一种并行计算的编程模型,用于作业调度。
GFS和BigTable已经为我们提供了高性能、高并发的服务,但是并行编程可不是所有程序员都玩得转的活儿,如果我们的应用本身不能并发,那GFS、BigTable也都是没有意义的。MapReduce的伟大之处就在于让不熟悉并行编程的程序员也能充分发挥分布式系统的威力。
简单概括的说,MapReduce是将一个大作业拆分为多个小作业的框架(大作业和小作业应该本质是一样的,只是规模不同),用户需要做的就是决定拆成多少份,以及定义作业本身。
2:MapReduce7.7GB教学视频
看完MapReduce的简介大家想必都已经明白了作为谷歌三宝之一的MapReduce对于hadoop的重要性了吧,小编为大家整理了7.7G的MapReduce教学视频,由于内容过多,小编在这里就不做过多的介绍了,需要获取MapReduce学习视频的小伙伴,可以+ + +v x或Q① ⑤ ⑦ ⑤ ③ ② ② ② ④ ① ⑨来进行获取吧~~~~~~~~~~
kafka
1:kafka是干啥的
Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。
Kafka是什么?举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,”鸡蛋“又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是”kafka“。鸡蛋其实就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是tcp、http什么的),也称为报文,也叫“消息”。消息队列满了,其实就是篮子满了,”鸡蛋“放不下了,那赶紧多放几个篮子,其实就是kafka的扩容。
就类似微博,有人发布消息,有人消费消息,这就是一个Kafka的场景。
Kafka和其他主流分布式消息系统的对比
2:kafka学习路线及2.9G学习视频
学习路线
2.9G学习视频
看完kafka的简介大家想必都已经明白了,以可水平扩展和高吞吐率而被淘宝,京东,微博等等大厂广泛使用,小编为大家整理了2.9G的kafka教学视频,由于内容过多,小编在这里就不做过多的介绍了,需要获取kafka学习路线和视频的小伙伴,可以转发关注小编+ + +v x或Q① ⑤ ⑦ ⑤ ③ ② ② ② ④ ① ⑨来进行获取吧~~~~~~~~~~
Flink
1:Flink是干啥的
很多人可能都是在 2015 年才听到 Flink 这个词,其实早在 2008 年,Flink 的前身已经是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了 ASF(Apache Software Foundation)的顶级项目之一。Flink 的最新版本目前已经更新到了 0.10.0 了,在很多人感慨 Spark 的快速发展的同时,或许我们也该为 Flink的发展速度点个赞。
Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。目前主要还是依靠开源社区的贡献而发展。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。再换句话说,Flink 会把所有任务当成流来处理,这也是其最大的特点。
Flink 可以支持本地的快速迭代,以及一些环形的迭代任务。并且 Flink 可以定制化内存管理。在这点,如果要对比 Flink 和 Spark 的话,Flink 并没有将内存完全交给应用层。这也是为什么 Spark 相对于 Flink,更容易出现 OOM的原因(out of memory)。就框架本身与应用场景来说,Flink 更相似与 Storm。如果之前了解过 Storm 或者Flume 的读者,可能会更容易理解 Flink 的架构和很多概念。下面让我们先来看下 Flink 的架构图。
我们可以了解到 Flink 几个最基础的概念,Client、JobManager 和 TaskManager。Client 用来提交任务给JobManager,JobManager 分发任务给 TaskManager 去执行,然后 TaskManager 会心跳的汇报任务状态。看到这里,有的人应该已经有种回到 Hadoop 一代的错觉。确实,从架构图去看,JobManager 很像当年的 JobTracker,TaskManager 也很像当年的 TaskTracker。然而有一个最重要的区别就是 TaskManager 之间是是流(Stream)。其次,Hadoop 一代中,只有 Map 和 Reduce 之间的 Shuffle,而对 Flink 而言,可能是很多级,并且在 TaskManager内部和 TaskManager 之间都会有数据传递,而不像 Hadoop,是固定的 Map 到 Reduce。
2:阿里巴巴以Flink为首选
去年年初发生了一件震惊大数据圈的事情,阿里巴巴以9000万欧元的价格收购了位于柏林的Data Artisans这家最牛逼的开源流引擎Flink背后的创业公司。
在Hadoop生态圈,Flink是一个比Spark更新的引擎。Spark你肯定知道了,就是那个取代了MapReduce成为新一代数据处理引擎霸主的。但是你可能不知道,阿里巴巴内部已经全面用Flink取代了Spark。
不管是全量数据还是增量数据,亦或者实时处理,一套方案即可全部支持,这就是阿里选择 Flink 的背景和初衷。
目前开源大数据计算引擎有很多选择,流计算如 Storm、Samza、Flink、Kafka Stream 等,批处理如 Spark、Hive、Pig、Flink 等。而同时支持流处理和批处理的计算引擎,只有两种选择:一个是 Apache Spark,一个是 Apache Flink。
从技术,生态等各方面的综合考虑,首先,Spark 的技术理念是基于批来模拟流的计算。而 Flink则完全相反,它采用的是基于流计算来模拟批计算。
从技术发展方向看,用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。而 Flink基于流来模拟批,在技术上有更好的扩展性。从长远来看,阿里巴巴决定用 Flink 做一个统一的、通用的大数据引擎作为未来的选型。
3:Flink学习路线及5.97G学习视频
学习路线:
5.97G学习视频:
Flink想必对大数据有所了解的朋友们都知道Flink现在有多火,它以基于流计算来模拟批计算会把所有任务当成流来处理让阿里巴巴都如此看好。
小编为大家整理了Flink+Kafka+MapReduce的教学视频共计17个G,由于内容过多,而且都是干货,小编在这里就不做过多的介绍了,需要获取学习路线和视频的小伙伴,可以转发+关注小编+ + +v x或Q① ⑤ ⑦ ⑤ ③ ② ② ② ④ ① ⑨来进行获取吧~~~~~~~~~~
感谢大家支持与配合,多多评论转发,让更多人受益。 |
|