首页 > 其他分享 >storm分布式实时计算二

storm分布式实时计算二

时间:2024-05-21 12:51:24浏览次数:16  
标签:task tuple spout 实时 bolt storm grouping 分布式

storm并发控制

storm计算支持在多台机器上水平扩容,通过将计算切分未多个多里的task再集群上并发执行来实现。

在storm中,一个task可以简单的理解为在集群某个节点上运行的一个spout或者bolt实例。

Node:storm集群下的多个服务器。

workers:一个node下的多个JVM(worker),一个topology会分配到多个worker上运行。

executor:一个worker下运行的多个线程,多个task可以指派给一个executor,默认情况下,每个executor分配一个task。

task:是spout或者bolt的实例,它们的nextTuple和execute方法会被executors线程调用执行。

给topology增加woker

Config config = new Config();

config.setNumWorkders(2);

配置executor和task

topologyBuilder.setSpout("spoutTest", new SentenceSpout(), 2);

topologyBuilder.setBolt("boltTest", new WordBolt()).setNumTasks(4);

数据流分组

数据流分组定义了一个数据流中tuple如何分发给topology中不同的bolt的task。

shuffle grouping:随机分组,每个bolt实例接收相同数量的tuple。

fileds grouping:根据指定字段的值进行分组。

all grouping:将所有的tuple复制后分发给所有bolt task。

global grouping:将所有的tuple路由到唯一一个task上。

none grouping:与shuffle一样。

direct grouping:数据源会调用emitDirect方法来判断一个tuple应该路由到哪个storm组件来接收。

local or shuffle grouping:和随机分组类似。

 

有保障机制的数据处理

storm保证spout每个发送出去的tuple都能够完整的执行处理。

spout可靠性

spout需要记录它发送的tuple,当下游bolt处理失败时spout可以重新发送。

ISpout接口支持ack与fail方法,用于确认或者失败后的处理。

需要注意的是collector.emit发送的tuple需要标记唯一的id。

bolt可靠性

当发送衍生的tuple时,需要锚定读取的tuple。

当处理消息成功或者失败时分别确认应答或者报错。

重新发送到指定bolt:collector.emit("制定的tuple",new Values(xxx))

确认应答:collector.ack(tuple)

失败:collector.fail(tuple)

标签:task,tuple,spout,实时,bolt,storm,grouping,分布式
From: https://www.cnblogs.com/use-D/p/18203672

相关文章

  • storm分布式实时计算一
    核心概念topology拓扑组成storm分布式计算结构称为topology拓扑,由stream(数据流)、spout(数据流生成者)、bolt(运算)组成。tuplestorm的核心数据结构是tuple,tuple中包含了一个或者多个键值对的列表。Stream由无限制的tuple组成的序列。spoutspout代表数据入口,充当采集器的角色,链......
  • jmeter分布式压测(Linux版本)
    1、安装JDK并配置环境变量(此处不再赘述)2、将Jmeter上传到任意目录解压(此处不再赘述)3、配置环境变量vi/etc/profile将光标移动到最底部,插入下面的内容,exportJMETER_HOME=/home/apache-jmeter-5.1.1  #jmeter的安装目录exportCLASSPATH=$JMETER_HOME/lib/ext/ApacheJMet......
  • JavaWeb分布式事务处理
    哈喽,大家好,我是木头左!一、分布式事务的概念与特性在开始之前,首先需要理解什么是分布式事务以及其特性。将从最基础的定义和特性开始,逐步深入到其在实际应用中的表现和影响。1.1分布式事务的概念分布式事务是指跨越多个独立的计算机资源(如数据库、应用服务器等)的一组事务的......
  • 架构与思维:4大主流分布式算法介绍(图文并茂、算法拆解)
    0导读之前的文章中,我们介绍过分布式事务的基础知识,也了解了分布式场景下常见一致性问题和解决方案,对分布式锁和CAS模式有一定的了解,有兴趣的同学可以通过下面链接到作者的两篇相关文章。五种分布式事务解决方案(图文总结)高并发下的数据一致性保障(图文全面总结)1介绍本文聚......
  • 阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
    主要实现思路1、在clickhouse中创建MySQL引擎表。2、根据MySQL引擎表的信息创建目标表。3、实现canal实时增量同步MySQL数据到clickhouse。MySQL的准备修改配置文件开启Binlog[root@hadoop100module]$sudovim/etc/my.cnfserver-id=1log-bin=mysql-binbinlog_form......
  • Hadoop集群模式的搭建之三:搭建Hadoop完全分布式集群
    Hadoop可以按如下3种模式进行安装和运行。(1)单机模式:Hadoop的默认模式,安装时不需要修改配置文件(2)伪分布式模式:Hadoop安装在一台计算机上,需要修改相应的配置文件,用一台计算机模拟多台主机的集群。(3)完全分布式模式:在多台计算机上安装JDK和Hadoop,组成相互连通的集群,需要修改相应的......
  • dremio 分布式存储docker配置简单说明
    对于dremio分布式存储的配置我们直接修改配置文件,当然基于环境变量参考配置dremio:platform:linux/x86_64image:dremio/dremio-oss:latestports:-9047:9047-31010:31010-32010:32010container_name:dr......
  • 分布式数据处理-《Spark编程基础》(Scala版)第二章简答题答案(自制)
    2Scala语言基础简答题T1简述Scala语言与Java语言的联系与区别。答:①联系:(1)Scala和Java均运行在JVM之上;(2)Scala和Java均有面向对象语言特点;②区别:(1)Scala是类Java的多范式编程;Java是命令式编程。T2简述Scala语言的基本特性。......
  • 分布式数据处理-《Spark编程基础》(Scala版)第四章简答题答案(自制)
    4Spark环境搭建和使用方法简答题T1请阐述Spark的四种部署模式。......
  • 分布式数据处理-《Spark编程基础》(Scala版)第三章简答题答案(自制)
    3Spark的设计与运行原理简答题T1Spark是基于内存计算的大数据计算平台,请阐述Spark的主要特点。......