加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数据处理框架的类型、比较和选择

发布时间:2018-04-10 15:35:47 所属栏目:大数据 来源:站长网
导读:副标题#e# 前言 说起大数据处理,一切都起源于Google公司的经典论文:《MapReduce:Simplied Data Processing on Large Clusters》。在当时(2000年左右),由于网页数量急剧增加,Google公司内部平时要编写很多的程序来处理大量的原始数据:爬虫爬到的网页、

Topology:Storm topology中封装了实时应用程序的逻辑。Storm topology类似于MapReduce作业,但区别是MapReduce最终会完成,而topology则会一直运行(除非被强制停止)。Topology是由spouts和bolts组成的DAG(有向无环图)。

Stream:Stream是一种不断被接入Storm中的无界的数据序列。

Spout:Spout是topology中Stream的源。Spout从外部数据源读取数据并接入到Strom系统中

Bolt:Bolt用于Storm中的数据处理,它可以进行过滤、聚合、连接等操作。将不同的bolt连接组成完整的数据处理链条,最后一个bolt用来输出(到文件系统或数据库等)。

Storm的基本思想是使用spout拉取stream(数据),并使用bolt进行处理和输出。默认情况下Storm提供了“at least once”的保证,即每条数据被至少消费一次。当一些特殊情况(比如服务器故障等)发生时,可能会导致重复消费。为了实现“exactly once”(即有且仅有一次消费),Storm引入了Trident。Trident可以将Storm的单条处理方式改变为微批处理方式,但同时也会对Storm的处理能力产生一定的影响。

值得一提的是,一些国内的公司在Storm的基础上进行了改进,为推动流处理系统的发展做出了很大贡献。阿里巴巴的JStorm参考了Storm,并在网络IO、线程模型、资源调度及稳定性上做了改进。而华为的StreamCQL则为Storm提供了SQL查询语义。

Apache Samza

提到Apache Samza,就不得不提到当前最流行的大数据消息中间件:Apache Kafka。Apache Kafka是一个分布式的消息中间件系统,具有高吞吐、低延时等特点,并且自带了容错机制。以下是Kafka的关键概念:

Broker:由于Kafka是分布式消息中间件,所以需要多个节点来存储数据。Broker即为Kafka集群中的单个节点。

Topic:用于存储写入Kafka的数据流。如同它的字面含义——主题,不同主题的数据流最好写入不同的topic,方便后续的处理。

Partition:每个topic都有1到多个partition,便于分散到不同的borker中。多个partition的数据合并在一起组成了topic完整的数据。

Producer:消息的生产者,用来将消息写入到Kafka集群。

Consumer:消息的消费者,用来读取Kafka中的消息并进行处理。

虽然Kafka被广泛应用于各种流处理系统做数据源,但Samza可以更好的发挥Kafka架构的优势。根据官网的解释,Samza由三个层次组成:

数据流层 执行层 处理层 支持三个层次的组件分别为: Kafka YARN Samza API

也就是说,Samza使用Kafka提供了数据流,使用YARN进行资源管理,自身仅提供了操作数据流的API。Samza对Kafka和YARN的依赖在很多方面上与MapReduce对HDFS和YARN的依赖相似。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读