美文网首页
storm简介

storm简介

作者: sknfie | 来源:发表于2020-09-28 10:09 被阅读0次

概述

Storm是Twitter开源的分布式实时大数据处理框架,最早开源于github,从0.9.1版本之后,归于Apache社区,被业界称为实时版Hadoop。随着大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。

Storm 的集群架构

storm架构图

Nimbus:即Storm的Master,负责资源分配和任务调度。一个Storm集群只有一个Nimbus。
Supervisor:即Storm的Slave,负责接收Nimbus分配的任务,管理所有Worker,一个Supervisor节点中包含多个Worker进程。
Worker:工作进程,每个工作进程中都有多个Task。
Executor:根据配置可启动多个线程
Task:任务,在 Storm 集群中每个 Spout 和 Bolt 都由若干个任务(tasks)来执行。每个任务都与一个执行线程相对应。

Storm的核心组件

核心组件

Topology:计算拓扑,Storm 的拓扑是对实时计算应用逻辑的封装。拓扑由一系列通过数据流(Stream Grouping)相互关联的 Spout 和 Bolt 组成的的拓扑结构。
Stream:数据流(Streams)是 Storm 中最核心的抽象概念。一个数据流指的是在分布式环境中并行创建、处理的一组元组(tuple)的无界序列。数据流可以由一种能够表述数据流中元组的域(fields)的模式来定义。
Spout:数据源代码组件,数据源是拓扑中数据流的来源。一般 Spout 会从一个外部的数据源读取元组然后将他们发送到拓扑中。
Bolt:业务处理代码组件,拓扑中所有的数据处理均是由 Bolt 完成的。通过数据过滤(filtering)、函数处理(functions)、聚合(aggregations)、联结(joins)、数据库交互等功能,Bolt 几乎能够完成任何一种数据处理需求。
Stream grouping:为拓扑中的每个 Bolt 的确定输入数据流是定义一个拓扑的重要环节。数据流分组定义了在 Bolt 的不同任务(tasks)中划分数据流的方式。在 Storm 中有八种内置的数据流分组方式。
Reliability:可靠性。Storm 可以通过拓扑来确保每个发送的元组都能得到正确处理。通过跟踪由 Spout 发出的每个元组构成的元组树可以确定元组是否已经完成处理。每个拓扑都有一个“消息延时”参数,如果 Storm 在延时时间内没有检测到元组是否处理完成,就会将该元组标记为处理失败,并会在稍后重新发送该元组。

并行度和流分组

并行度和流分组

并行度:Worker->Executor->Task。默认情况下,一个 Executor 对应一个 Task。因此,task 越多,并行度越高。
流分组:Task 与 Task 之间的数据流向关系。一个拓扑中,可以有很多 Spout + Bolt,那么 bolt1 的数据流向 bolt2 的时候的一个策略就是流分组。
流分组策略:
Shuffle Grouping:随机发射,负载均衡
Fields Grouping:根据一个或多个字段进行分组,如果那一个或者多个 fields 如果值完全相同的话,那么这些 tuple,就会发送给下游 bolt 的其中固定的一个 task。
你发射的每条数据是一个 tuple,每个 tuple 中有多个 field 作为字段。
比如 tuple 3 个字段,name,age,salary
{"name": "tom", "age": 25, "salary": 10000} -> tuple -> 3个 field,name,age,salary
All Grouping:广播分发
Global Grouping:选择其中一个 task 最小的 id 分发
None Grouping:与 shuffle 类似
Direct Grouping:指定一个 task id 发送
Local or Shuffle Grouping: 只在本地同一个进程(worker)中国随机分发

相关文章

  • java大数据之storm

    一、Storm简介 1.1 Storm是什么 Apache Storm(http://storm.apache.o...

  • storm简介

    Storm:Apache Storm is a free and open source distributed ...

  • Storm 简介

    Storm是一个分布式的,可靠的,容错的数据流处理系统。它会把工作任务委托给不同类型的组件,每个组件负责处理一项简...

  • storm简介

    概述 Storm是Twitter开源的分布式实时大数据处理框架,最早开源于github,从0.9.1版本之后,归于...

  • Storm简介

    Storm是一个开源的分布式实时计算框架,可以简单、可靠的方式进行大数据流处理。通常用于实时分析,在线机器学习,次...

  • Apache Storm简介

    Apache Storm简介 转载: https://www.w3cschool.cn/apache_storm/...

  • storm

    Storm是什么Storm官方网站有段简介Storm是一个免费并开源的分布式实时计算系统。利用Storm可以很容易...

  • 【Storm的简介】

    storm分布式实时计算框架,在整个程序中,spout接收数据源并封装数据为tuple,然后将tuple发送给bo...

  • 1 Storm简介

    为什么选择Storm 因为公司业务需求实时性高。尝试了sparkstream,实时性没有storm高。所以就选择了...

  • Storm 概念简介

    刚刚甩了自己几个大嘴巴子,让自己好好静一静。不多说了,重新整理下Storm的简介。按下自己看啥都难受的心。 一、A...

网友评论

      本文标题:storm简介

      本文链接:https://www.haomeiwen.com/subject/xjxduktx.html