Storm的核心技术和基本组成

Storm框架的核心由7个部分组成,如图:

Topology(拓扑)

  一个拓扑是一个图的计算。用户在一个拓扑的每个节点包含处理逻辑,节点之间的连接显示数据应该如何在节点间传递。Topology的运行时很简单的。

Stream(流)

  流是Storm的核心抽象。一个流是一个无界Tuple序列,Tuple可以包含整型、长整型、短整型、字节、字符、双精度数、浮点数、布尔值和字节数组。用户可以通过自定义序列化器,在本机Tuple使用自定义类型。

Spout(喷口)

  Spout是Topology流的来源。一般Spout从外部来源读取Tuple,提交到Topology(如Kestrel队列或Twitter API)。Spout可以分为可靠的和不可靠的两种模式。Spout可以发出超过一个流。

Bolt(螺栓)

  Topology中的所有数据的处理都在Bolt中完成。Bolt可以完成数据过滤、业务处理、连接运算、连接、访问数据库等操作。Bolt可以做简单的流转换,发出超过一个流,主要方法是execute方法。完全可以在Bolt中启动新的线程做异步处理。

Stream grouping(流分组)

  流分组在Bolt的任务中定义流应该如何分区。Storm有7个内置的流分组接口:随机分组(Shuffle grouping)、字段分组(Fields grouping)、全部分组(All grouping)、全局分组(Global grouping)、无分组(None grouping)、直接分组(Direct grouping)、本子或者随机分组(Local grouping或Shuffle grouping)。

Task(任务)

  每个Spout或Bolt在集群中执行许多任务。每个任务对应一个线程的执行,刘分组定义如何从一个任务集到另一个任务集发送Tuple。可以通过TopologyBuilder类的setSpout()和setBolt()方法来设置每个Spout或Bolt的并行度。

worker(工作进程)

  Topology跨一个或多个Worker节点的进程执行。每个Worker节点的进程是一个物理的JVM和Topology执行所有任务的一个子集。

时间: 2024-10-28 20:10:23

Storm的核心技术和基本组成的相关文章

Storm通信机制

Worker间的通信:经常需要通过网络跨节点进行,Storm使用ZeroMQ或Netty(0.9以后默认使用)作为进程间通信的消息框架. Worker进程内部通信:不同worker的thread通信使用LMAX Disruptor来完成. 不同topologey之间的通信:Storm不负责,需要自己想办法实现,例如使用kafka等: 1.worker进程间的通信 worker进程间消息传递机制,消息的接收和处理的大概流程见下图: 对于worker进程来说,为了管理流入和传出的消息,每个worke

大数据独角兽Palantir之核心技术探秘

Palantir源起 B2B大数据 企业级Google ▼ Palantir(中文名帕兰提尔,源于<指环王>中可穿越时空.洞悉世间一切的水晶球Palantír)被誉为硅谷最神秘的大数据独角兽企业,短短几年内跻身百亿俱乐部,成为全球估值排名第四的初创公司.它的主要客户只在美剧和好莱坞里出现,如美国联邦调查局(FBI).美国中央情报局(CIA).美国国家安全局(NSA).美国军队和各级反恐机构,当然还有如JPMorgan这样的华尔街金融大鳄等等.关于Palantir的传奇故事很多,CIA通过他家的

storm面试小题

1.大纲 Storm工作原理是什么? 流的模式是什么?默认是什么? 对于mapreduce如何理解? Storm的特点和特性是什么? Storm组件有哪些? 2.Storm工作原理是什么? 相对于hadoop而言,strom的优势在于对于应对大数据两的实时数据处理上,因为hadoop在处理大数据过程中高延时的特点使得其面对实时数据缺乏足够的应对策略,目前strom已经被广泛的应用在诸如金融系统,实时推送系统,预警系统,网站统计等多个场景中,他可伸缩性高,不存在数据丢失,高容错性,高健壮性等特点都

大数据学习教程:五大核心技术有哪些?

大数据技术的体系庞大且复杂,基础的技术包含数据的采集.数据预处理.分布式存储.NoSQL数据库.数据仓库.机器学习.并行计算.可视化等各种技术范畴和不同的技术层面.首先给出一个通用化的大数据处理框架,主要分为下面几个方面:数据采集与预处理.数据存储.数据清洗.数据查询分析和数据可视化. 一.数据采集与预处理 对于各种来源的数据,包括移动互联网数据.社交网络的数据等,这些结构化和非结构化的海量数据是零散的,也就是所谓的数据孤岛,此时的这些数据并没有什么意义,数据采集就是将这些数据写入数据仓库中,把

详解Kafka: 大数据开发最火的核心技术

详解Kafka: 大数据开发最火的核心技术 架构师技术联盟 2019-06-10 09:23:51 本文共3268个字,预计阅读需要9分钟. 广告 大数据时代来临,如果你还不知道Kafka那你就真的out了(快速掌握Kafka请参考文章:如何全方位掌握Kafka核心技术)!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP10银行,8家TOP10保险公司,9家TOP10电信公司等等. LinkedIn.Microsoft和Netflix每天都用Ka

深入理解Flink核心技术及原理

前言 Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望能够帮助读者对Flink有更加深入的了解,对其他大数据系统开发者也能有所裨益.本文假设读者已对MapReduce.Spark及Storm等大数据处理框架有所了解,同时熟悉流处理与批处理的基本概念. 文章转载自:深入理解Flink核心技术 一.Flink简介 Flink核心是一个流式的数据流执行引擎,

Apache Storm 1.1.0 中文文档 | ApacheCN

前言  Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ApacheCN 最近组织了翻译 Storm 1.1.0 中文文档 的活动,整体 翻译进度 为 96%. 感谢大家参与到该活动中来 感谢无私奉献的 贡献者,才有了这份 Storm 1.1.0 中文文档 感谢一路有你的陪伴,我们才可以做的更好,走的更快,走的更远,我们一直在努力 ... 网页地址:

Storm入门(四)WordCount示例

Storm API文档网址如下: http://storm.apache.org/releases/current/javadocs/index.html 一.关联代码 使用maven,代码如下. pom.xml  和Storm入门(三)HelloWorld示例相同 RandomSentenceSpout.java /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor lice

storm的可靠性

消息确认机制: 在数据发送的过程中可能会数据丢失导致没能接收到,spout有个超时时间(默认是30S),如果30S过去了还是没有接收到数据,也认为是处理失败. 运行结果都是处理成功 参考代码StormTopologyAcker.java package yehua.storm; import java.util.Map; import org.apache.storm.Config; import org.apache.storm.LocalCluster; import org.apache.