返回顶部
首页 > 资讯 > 精选 >Storm并发度怎么设置
  • 493
分享到

Storm并发度怎么设置

2023-06-02 14:06:29 493人浏览 泡泡鱼
摘要

本篇内容介绍了“StORM并发度怎么设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Storm架构:master/slave  主节点

本篇内容介绍了“StORM并发度怎么设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  Storm架构:master/slave

  主节点:Nimbus

  负责在集群上进行任务(Topology)的分发与资源的调度以及监控

  工作节点:Supervisor

  接收到任务请求后,启动一个或多个Worker进程来处理任务;默认情况下,一个Supervisor最多启动4个Worker

  工作进程:Worker

  在Supervisor中的子进程,存在着若干个Spout和Bolt线程,来负责Spout和Bolt组件处理任务(实际是开启的executor线程)

  作业:Topologies(死循环,不会结束)

  Spout:获取数据的组件

  Bolt:处理数据的组件

  Stream:Spout和Bolt之间数据流动的通道

  Tuple:

  1)Stream的最小组成单位,Spout向Bolt发送一次数据叫一个Tuple

  2)同一个Stream中Tuple的类型相同,不同的Stream中可能相同/不同

  3)一个key-value形式的Map

  数据流分发策略(Stream groupings):

  解决Spout和Bolt之间数据传输(发送Tuple元组)的问题

  1)shuffleGrouping:

  随机派发Stream中的Tuple到Bolt中

  2)fieldsGrouping:

  根据字段的哈希值与Bolt个数进行取模操作然后进行分组发送,一个节点是一个Worker, 一个Bolt是一个task, 全部节点的Spout或Bolt的个数叫并发度。

  Storm并发度设置:

  1.Worker并发度:

  首先按照集群规模和集群的物理位置来设定

  一般会把Worker均分到每一个节点里, 一个supervisor默认设置一个Worker

  2.Spout数量设定:

  Spout总数默认等于kafka(消息中间件)对应Topic的分区数,提高吞吐速度

  一般一个Worker设置一个Spout

  3.Bolt1数量设定:

  首先根据数据量和处理数据的时间来设定

  一般情况下, Bolt1的数量是Spout数量的2倍(根据项目进行修改)

  4.Bolt2数量设定:

  首先根据数据量和处理数据的时间来设定,因为Bolt1传过来的中间结果数据已经减少很多,Bolt2的数量可以酌情减少。

  容错机制:异或方式<相同为,不同为1>

  tupleId - 产生新数据,会产生一个tupleId;

  整个过程中的tupleId按顺序两两异或到最后

  若结果为,则数据正确,否则错误

  messageId - 代表整条信息,api中指定提供给程序员,long型

  rootId - 代表某条信息,提供给storm框架

  出现数据运算失败的两种情况:

  execute(){

  1.异常(数据异常)

  2.任务运行超时 -- 认为处理失败

  }

  因为数据发送时导致的数据重复发送问题, 如何解决?

  Ⅰ.

  1.比如对订单信息做处理, 处理成功后, 把订单信息ID存储到Redis(set)

  2.信息发送时, 判断是否处理过此信息

  execute(){

  if()

  else()

  }

  Ⅱ.

  不作处理: 点击流日日志分析: pv, uv

  指标分析: 订单人数, 订单金额

  消息的可靠性保障和acker机制: open / nextTuple / ack / fail/ close

  Ⅰ.Spout类:

  在发送tuple时,Spout会提供一个msgId,用于在后续识别tuple;Storm会根据msgId跟踪创建的tuple树,直到某个tuple被完整处理,根据msgId调用最初发送tuple的Spout中ack()方法,检测到超时就调用fail()方法 -- 这两个方法的调用必须由最初创建这个tuple的Spout执行;当Spout从消息队列(Kafka/RocketMQ)中取出一条数据时,实际上没有被取出,而是保持一个挂起状态,等待消息完成的信号,挂起状态的信息不会被发送到其它的消费者;当该消息被"取出"时,队列会将消息体数据和一个唯一的msgId提供给客户端,当Spout的ack()/fail()方法被调用时,Spout根据发送的id向队列请求将消息从队列中移除/重新放入队列。

  Ⅱ.acker任务:

  高效的实现可靠性 -- 必须显式的在Bolt中调用定义在Spout中的ack()和fail()方法,Storm拓扑有一些特殊的称为"acker"的任务,负责跟踪Spout发送的tuple的DAG,当一个acker发现DAG结束后,它就会给创建Spout tuple的Spout任务发送一条消息,让这个任务来应答这个消息。acker并不会直接的跟踪tuple树,在acker树中存储了一个表,用于将Spout tuple的id与一对值相映射,id为创建这个tuple的任务id,第二个值为一个64bit的数字(ack val),这个值是这棵树中所有被创建的或者被应答的tuple的tuple id进行异或运算的结果值。

  Ⅲ.移除可靠性:

  1.将 Config.TOPOLOGY_ACKERS 设置为

  2.在SpoutOutputCollector.emit 方法中省略消息 id 来关闭 spout tuple 的跟踪功能

  3.在发送 tuple 的时候选择发送“非锚定”的(unanchored)tuple

“Storm并发度怎么设置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Storm并发度怎么设置

本文链接: https://lsjlt.com/news/230347.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Storm并发度怎么设置
    本篇内容介绍了“Storm并发度怎么设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Storm架构:master/slave  主节点...
    99+
    2023-06-02
  • Storm中的并发度是如何调整的
    在Storm中,可以通过调整以下几个参数来控制并发度: Worker数量:可以通过调整Worker的数量来控制整个Topology...
    99+
    2024-04-02
  • php怎么设置并发连接数
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。首先我们需要在服务器中找到php-fpm.conf配置(也有可能会在引入的www.fong配置中)找到如下内容:[global] pid = /usr/loc...
    99+
    2018-02-06
    php 并发 连接数
  • redis并发锁时间怎么设置
    在 Redis 中实现并发锁,可以使用 SETNX(SET if Not eXists)指令。该指令会在键不存在时设置键的值,如果键...
    99+
    2023-08-30
    redis
  • sqlserver最大并发数怎么设置
    SQL Server 的最大并发数是由其配置和硬件资源决定的,可以通过以下几种方式来设置最大并发数: 修改数据库连接池的最大连接...
    99+
    2024-04-09
    sqlserver
  • golang的最大并发数怎么设置
    Golang中的最大并发数是由操作系统的默认限制和Golang运行时的配置共同决定的。在Golang中,可以通过以下几种方式来控制最...
    99+
    2024-02-29
    golang
  • 设置IISExpress并发数
    今天将之前的一个瓦片图的服务迁移到了asp.net core试了一下,使用的时候感觉客户端刷新时有些慢,估计是并发连接数限制的原因。 由于这是一个开发中的版本,是用IIS Expre...
    99+
    2024-04-02
  • 怎么设置span宽度高度
    本篇内容介绍了“怎么设置span宽度高度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!span宽度高度设置...
    99+
    2024-04-02
  • 百度怎么设置php.ini
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑百度怎么设置php.ini在百度BAE中设置php.ini文件首先将下载好的php安装包解压,打开文件夹,里面看到的如图找到php.ini-development配置文件...
    99+
    2017-11-19
    百度 php.ini
  • 怎么设置div高度
    本篇内容介绍了“怎么设置div高度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如何对div设置高度呢?答...
    99+
    2024-04-02
  • win10怎么设置亮度
    在win10中设置亮度的方法:1.打开控制板面;2.进入“硬件和声音”选项;3.点击“调整屏幕亮度”选项;4.设置屏幕亮度;具体步骤如下:首先,win10系统桌面中打开控制板面;进入到控制板面后,在板面中选择进入“硬件和声音”选项;在硬件和...
    99+
    2024-04-02
  • PostgreSQL并行计算算法及参数强制并行度怎么设置
    这篇文章主要讲解了“PostgreSQL并行计算算法及参数强制并行度怎么设置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSQL并行计算算法及参数强制并行度怎么设置”吧!一、优...
    99+
    2023-06-29
  • weblogic并发数如何设置
    WebLogic并发数可以通过调整以下两个参数来设置:1. MaxThreads:该参数控制WebLogic服务器的最大线程数,即同...
    99+
    2023-09-01
    weblogic
  • CSS宽度、高度属性怎么设置
    这篇文章主要介绍了CSS宽度、高度属性怎么设置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS宽度、高度属性怎么设置文章都会有所收获,下面我们一起来看看吧。CSS 设置高度...
    99+
    2024-04-02
  • JavaScript怎么设置Iframe高度
    这篇“JavaScript怎么设置Iframe高度”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • react怎么设置div高度
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么设置div高度?react动态设置元素高度使用react实现动态修改样式(不建议使用此方式,除非没有其他选择)如下图所示:需求实现图中的更换...
    99+
    2023-05-14
    React.js
  • 如何设置IIS Express并发数
    这篇文章主要介绍“如何设置IIS Express并发数”,在日常操作中,相信很多人在如何设置IIS Express并发数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何设置IIS&nbs...
    99+
    2023-07-02
  • BootStrap表单宽度怎么设置
    这篇文章主要介绍BootStrap表单宽度怎么设置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用bootstrap的栅格“ coll-md- ”命令设置宽度总是不尽人意,有时上下框...
    99+
    2024-04-02
  • css最大宽度怎么设置
    今天小编给大家分享一下css最大宽度怎么设置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2024-04-02
  • css3怎么设置文本高度
    这篇文章主要讲解了“css3怎么设置文本高度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3怎么设置文本高度”吧! 在cs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作