JStorm中的并行( parallelismction )介绍

JStrom中。一个计算任务通过多台机器使得计算分解为多个独立并行执行在集群内执行的任务(tasks)。从而得到水平扩展。

JStorm中,一个任务(task)就是一个能够执行在集群内不论什么节点的一个spout或一个bolt实例。

要了解这个并行怎样工作的。我们首先要了解在JSorm集群内运行一个拓扑所涉及到的4个重要概念:

- 节点(Nodes)/机器(machines):一个JStorm集群包括一到多个节点,这个节点执行一个work。

- Workers(JVMs):这些是执行在一个节点的独立的JVM进程。

每一个节点能够配置执行一个到多个workers,即多少个JVM进程。

- Executors(threads):这是执行在一个worker JVM进程的java线程。

Strom中,多个tasks能够执行在一个线程中。

假设没有覆盖相关配置,Strom会一个task一个线程。JStrom中,一个task一个线程。和Storm不一样了。

- Tasks(bolt/spout实例):Tasks是spouts和bolts的实例,实例方法中的
 nextTuple()和execute()方法会被线程调用。

----------

----------

配置拓扑的workers

=======

一个拓扑(topology)能够配置多个workers(jvm进程),配置方式:

> Config config = new Config();
config.setNumWorkers(2);

上面的配置,我们设置了2个workers。默认配置是1,所以我们通常会配置这个參数,以合理利用集群资源。

Jstorm 的组成(The Components of Jstorm)

=======

在Jstorm集群中,集群节点分为两类:主控节点(master node ) 和工作节点(worker nodes)。

主控节点执行者一个守护进程(daemon)称之为Nimbus,它主要负责向集群其他工作节点(worker nodes)分发提交来的代码及分配任务(tasks)。而且监视者每一个任务的成功与失败。

工作节点(worker nodes)也执行者一个守护进程(daemon)称之为Supervisor。它执行一个拓扑(topology)的一部分。

在Jstorm中,一个拓扑(topology)执行在非常多机器上的很多工作节点(worker nodes)上。
Jstorm中各节点被设计成无状态的,而它们组成的集群状态被保存在Zookeeper集群上。所以这些节点能够失败或重新启动而不影响整个系统的健康执行。

Nimbus  --->  Zookeeper --->  Supervisor

相关 博文:JStorm中消息确保处理机制 http://blog.csdn.net/doctor_who2004/article/details/47710331

JStorm/Strom配置executors和tasks(线程和实例) http://blog.csdn.net/doctor_who2004/article/details/47709945

转载于:https://www.cnblogs.com/yutingliuyl/p/6915994.html

JStorm中的并行( parallelismction )介绍相关推荐

  1. oracle 判断是否错误_Oracle中的并行系列(二):你设置的并行真的生效了吗?...

    作者  刘金龙·沃趣科技高级数据库技术专家 出品  沃趣科技 经过第一篇文章<Oracle 中的并行系列(一)>的介绍,我们对Oracle中的并行有了大致的了解.但是实际使用并行的过程中我 ...

  2. .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)

    引言 随着CPU多核的普及,编程时充分利用这个特性越显重要.上篇首先用传统的嵌套循环进行数组填充,然后用.NET 4.0中的System.Threading.Tasks提供的Parallel Clas ...

  3. .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(一)

    引言 随着CPU多核的普及,编程时充分利用这个特性越显重要.本文首先用传统的嵌套循环进行数组填充,然后用.NET 4.0中的System.Threading.Tasks提供的Parallel Clas ...

  4. 理解和使用SQL Server中的并行

    许多有经验的数据库开发或者DBA都曾经头痛于并行查询计划,尤其在较老版本的数据库中(如sqlserver2000.oracle 7.mysql等).但是随着硬件的提升,尤其是多核处理器的提升,并行处理 ...

  5. Blender中的Python脚本介绍学习教程

    Blender中的Python脚本介绍学习教程 MP4 |视频:h264,1280×720 |音频:AAC,48000 Hz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:1.63 ...

  6. django中使用celery简单介绍

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 本章节我们重点在于实现,如何存储任务的结果. 我们将任务函数改为: from celery_demo.celery im ...

  7. pythonexcel介绍_Python 中pandas.read_excel详细介绍

    Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...

  8. php中使用mysql的视图_MYSQL中视图的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.什么是视图 执行一条SQL,将结果集保存在一张虚拟表中 (相关 ...

  9. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

最新文章

  1. 敏捷开发一千零一问系列之四:优先级排错怎么办?
  2. 正则表达式的一点奇怪
  3. 还原软件实施更安全防护机器狗
  4. python的优点和缺点-Python语言的优缺点,你知道吗?
  5. boost::safe_numerics::safe相关的测试程序
  6. XP+WIN7双系统安装,备份,启动菜单修复
  7. 2018数据库流行度12月排行:Oracle续跌至年内低位,PostgreSQL激增创新高
  8. TZOJ 5640: 数据结构实验:仓库管理
  9. Laravel 学习笔记之文件上传
  10. Pycharm安装jieba库
  11. 在Ubuntu中搭建嵌入式Linux开发环境
  12. Flash的破解版按装
  13. python微信图标制作_Python帮你微信头像任意添加装饰,别再@微信官方了!
  14. 记录一次获取车载摄像头数量为0同时打开摄像头黑屏的问题分析(基于Android M)
  15. 电脑无缘无故黑屏,无法调节亮度。
  16. 请简述什么是spring的ioc和di_请简述什么是 Spring 的 IoC 和 DI?_学小易找答案
  17. 10个超高质量Python数据分析公众号!
  18. Keepalived 详解
  19. 手机网页开发简单总结
  20. 小程序:通过小程序wx.getLocation接口审核的经验总结

热门文章

  1. uploadify.js
  2. 大数据-如何在Docker上使用Hadoop
  3. Netty入门笔记-BIO编程
  4. c语言筛选法求100之内素数,用筛选法求100之内的素数。
  5. 简单说说我对几位认识的号主的印象
  6. Kubernetes控制器--副本集ReplicaSet
  7. oracle asm ora 15041,ORA-15041,ORA-01274 故障解决实例
  8. mysql数据库相关
  9. java spi使用详解
  10. redis+lua实现分布式限流