Storm中Trident框架详解

简介: 笔记

一、Storm Trident概述及特性


Trident是在storm基础上,一个以realtime 计算为目标的高度抽象。 它在提供处理大吞吐量数据能力的同时,也提供了低延时分布式查询和有状态流式处理的能力。好比 Mapreduce框架的Pig,Trident是Storm提供的基于基本API开发的高级框架。Trident提供了 joins, aggregations, grouping, functions, 以及 filters等能力。


除此之外,Trident 还提供了一些专门的原语,从而在基于数据库或者其他存储的前提下来应付有状态的递增式 处理。


Trident是完全容错的,拥有有且只有一次处理的语义,其实就是transactional的高级封装。这就让你可以很轻松 的使用Trident来进行实时数据处理。Trident会把状态以某种形式保持起来,当有错误发生时,它会根据需要来恢复 这些状态。


Trident封装了transactional事务类,所以我们不再需要学习Batch相关的基础API了,减轻了学习成本。


trident每次处理消息均以batch为单位,即一次处理多个元组


trident是storm的更高层次抽象,主要提供了3个方面的好处:


(1)常用的count,sum等封装成了方法,可以直接调用不需要自己实现。

(2)提供一次原语,如groupby等。

(3)提供事务支持,可以保证数据均处理且只处理了一次(恰好一次)

如果我们开发一个对文本中的词频进行统计的程序,使用Storm框架的话我们需要开发三个Storm组件:


1.一个Spout负责收集文本信息并分段,做为sentence字段发送给下游的Bolt

2.一个Bolt将每段文本分词,将分词结果以word字段发送给下游的Bolt

3.一个Bolt对词频进行统计,把统计结果记录在count字段并存储

如果使用Trident我们可以使用一下代码完成上述操作:

5.png


二、TridentTopology与StormToplogy


(1)区别

StormToplogy:6.png

TridentTopology

7.png

(2)联系

8.png

spout的消息流涉及到的核心类

9.png


三、TridentTopology的可靠性机制详解


10.png


四、Storm Trident API讲解


11.png


相关文章
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
|
机器学习/深度学习 PyTorch 算法框架/工具
在阿里云机器学习平台上布置一个PyTorch模型
在阿里云机器学习平台上布置一个PyTorch模型【1月更文挑战第21天】【1月更文挑战第105篇】
383 1
|
10月前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
1049 3
|
12月前
|
存储 分布式计算 DataWorks
关于阿里云DataWorks的6个问题记录
该文章记录了关于阿里云DataWorks使用的六个常见问题及解答,帮助用户更好地理解和操作DataWorks平台。
437 0
关于阿里云DataWorks的6个问题记录
|
11月前
|
PyTorch 算法框架/工具 Python
Pytorch学习笔记(十):Torch对张量的计算、Numpy对数组的计算、它们之间的转换
这篇文章是关于PyTorch张量和Numpy数组的计算方法及其相互转换的详细学习笔记。
250 0
|
11月前
|
XML 存储 JSON
在 Python 中应用 protobuf
在 Python 中应用 protobuf
241 0
|
机器学习/深度学习 人工智能 自然语言处理
卷积神经网络(CNN):视觉识别的革命先锋
卷积神经网络(CNN)作为人工智能领域的一颗璀璨明珠,在计算机视觉中发挥着核心作用。CNN的发展历程展现了从生物学灵感到技术创新的转变,历经LeNet-5至AlexNet、VGGNet、ResNet等里程碑式的进步。其独特结构包括卷积层、池化层及全连接层,能够层层递进地提取特征并作出决策。CNN不仅在图像分类、目标检测等领域表现卓越,还在人脸识别、医学影像分析等方面展现出巨大潜力。尽管存在局限性,如对序列数据处理能力有限及解释性问题,但通过引入注意力机制、自监督学习等方法,CNN将持续演进,引领人工智能技术走向更加精彩的未来。
708 2
|
传感器 数据采集 机器学习/深度学习
利用Auto-Encoder技术去除传感器噪声,提高预测准确性
利用Auto-Encoder技术去除传感器噪声,提高预测准确性
|
消息中间件 存储 容灾
深入理解Kafka核心设计及原理(一):初识Kafka
深入理解Kafka核心设计及原理(一):初识Kafka
1434 7
『PyQt5-Qt Designer篇』| 07 Qt Designer中栅格布局和表单布局的使用
『PyQt5-Qt Designer篇』| 07 Qt Designer中栅格布局和表单布局的使用
320 0