一、计算框架
Storm,Spark,Flink简介和区别
参考:https://www.jianshu.com/p/16323566f3c6
0、框架流程
从各种来源取消息 -> 流式系统(分布式流通,计算任务,业务等)-> 输出(后面具体业务UI等)
1、Storm
- Storm 实时计算框架
- 为了容错性,每个节点都要返回ack,可以理解为消息是否正确处理,因此导致吞吐量不高。
- 特点,不会丢消息,但是会消息会重复
2、Spark Streaming
- Spark Streaming 是实时计算框架(伪的 — 小批量消息传递)
- batch 数据转换成 RDD — 弹性分布式数据集(Resilient Distributed Datasets)
- RDD机制只能保证内部计算exactly once (流式系统自身保证)
- 接收处和sink处不保证exactly once
- 因为减小了ack开销,所以比Storm要快
3、Flink
- Flink 真正流式实时计算框架
- snapshot(快照),相当于设了一个关卡,这一个关卡内所有的数据验证通过,就pass,不通过,重新载入上一个关卡reset。
- 快照内包含取数据的position等信息,保证exactly once.
二、存储
Hdfs(Hadoop分布式文件系统(HDFS)), Hbase, Hive,
更正:Hadoop是MapReduce+ HDFS,MapReduce是计算框架,HDFS是文件系统,做存储
参考
https://www.jianshu.com/p/c055da172c11
https://www.cnblogs.com/xubiao/p/5571176.html
1、Hdfs & Hbase & Hive
- Hbase与Hive都是架构在Hadoop之上的。都是用Hadoop作为底层存储。
- Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,是一个数据仓库处理工具,可以让我们用SQL语言查询使用
- HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 ,也是一个数据库,但是可以实时高效的读取数据
- 【自己理解的不知道对不对】Hive和Hbase建立在Hadoop上,但是可能对于数据的转换不一样,比如数据结构化,因此导致在处理数据上会有些区别。
2、Redis
参考
https://blog.csdn.net/aikumei/article/details/77671891
- Redis是内存型Key/Value系统,读写性能非常好,支持操作原子性,很适合用来做高速缓存。
- 它常被称作是一款数据结构服务器(data structure server)