JStorm中的并行( parallelismction )介绍
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
JStorm中的并行( parallelismction )介绍的更多相关文章
- 理解和使用SQL Server中的并行
许多有经验的数据库开发或者DBA都曾经头痛于并行查询计划,尤其在较老版本的数据库中(如sqlserver2000.oracle 7.mysql等).但是随着硬件的提升,尤其是多核处理器的提升,并行处理 ...
- .Net中的并行编程-2.ConcurrentStack的实现与分析
在上篇文章<.net中的并行编程-1.基础知识>中列出了在.net进行多核或并行编程中需要的基础知识,今天就来分析在基础知识树中一个比较简单常用的并发数据结构--.net类库中无锁栈的实现 ...
- .Net中的并行编程-6.常用优化策略
本文是.Net中的并行编程第六篇,今天就介绍一些我在实际项目中的一些常用优化策略. 一.避免线程之间共享数据 避免线程之间共享数据主要是因为锁的问题,无论什么粒度的锁 ...
- .Net中的并行编程-5.流水线模型实战
自己在Excel整理了很多想写的话题,但苦于最近比较忙(其实这是借口).... 上篇文章<.Net中的并行编程-4.实现高性能异步队列>介绍了异步队列的实现,本篇文章介绍我实际工作者遇到了 ...
- .Net中的并行编程-4.实现高性能异步队列
上文<.Net中的并行编程-3.ConcurrentQueue实现与分析>分析了ConcurrentQueue的实现,本章就基于ConcurrentQueue实现一个高性能的异步队列,该队 ...
- 使用Memcache在PHP中调试方法的介绍及应用
使用Memcache在PHP中调试方法的介绍及应用 如果我们在网络开发中,特别是大访问量的web项目开发中,为了提高响应速度,减少数据查询运算,那么我们都会选用memcahce.首先我们必须要安装,接 ...
- asp.net中缓存的使用介绍一
asp.net中缓存的使用介绍一 介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管理,有的提到的c ...
- lua解析脚本过程中的关键数据结构介绍
在这一篇文章中我先来介绍一下lua解析一个脚本文件时要用到的一些关键的数据结构,为将来的一系列代码分析打下一个良好的基础.在整个过程中,比较重要的几个源码文件分别是:llex.h,lparse.h.l ...
- .Net中的并行编程-3.ConcurrentQueue实现与分析
在上文<.Net中的并行编程-2.ConcurrentQueue的实现与分析> 中解释了无锁的相关概念,无独有偶BCL提供的ConcurrentQueue也是基于原子操作实现, 由于Con ...
随机推荐
- 【Swift】学习笔记(六)——函数
函数 懂编程语言的来说这个是最主要的了,不论什么语言都有函数这个概念.函数就是完毕特定任务的独立代码块. 函数怎么创建: 1.创建一个无參无返回值的函数(实际上全部的函数都有返回值,这个函数返回vo ...
- 避免ANR异常
避免ANR异常 不要在主线程中执行耗时的代码,不然很容易出现anr错误. 原因: 解决方法:
- [MySQL] 按年度、季度、月度、周、日统计查询
该死的mysql没有提供unix时间戳的专门处理函数,所以,如果遇到时间分组,而你用的又是整型unix时间戳,则只有转化为mysql的其他日期类型! FROM_UNIXTIM()将unix时间戳转 ...
- TCP/IP协议族简介
OSI网络分层介绍 网络结构的标准模型是OSI模型,由国际互联网标准化组织定义的网络分层模型.虽然目前没有完全按照这种模型实现的网络协议栈,但是学习这个模型对于我们理解网络协议还是很有帮助的. 1.O ...
- P1343 地震逃生
题目描述 汶川地震发生时,四川**中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带,每条边都只能容纳一定量 ...
- iOS-Core-Animation-Advanced-Techniques/12-性能调优/性能调优.md
性能调优 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...
- Hihocoder1061-Beautiful String
时间限制:10000ms单点时限:1000ms内存限制:256MB 描述 We say a string is beautiful if it has the equal amount of 3 or ...
- 洛谷T47092 作业_简单状压动归
只要注意一下细节就毫无难点了,简简单单状态压缩即可. Code: #include<cstdio> #include<algorithm> using namespace st ...
- How Google Backs Up The Internet Along With Exabytes Of Other Data
出处:http://highscalability.com/blog/2014/2/3/how-google-backs-up-the-internet-along-with-exabytes-of- ...
- [置顶]
openHAB 体系结构与编程模型 (2) --- Web Application Servlet 源码结构
|| || || || || || demo.items Group All Group gGF (All) Group gFF (All) Group gC (All) Group Outdoor ...