storm相关技术

There are two kinds of nodes on a Storm cluster: the master node and the worker nodes.

有两种节点,主节点和worker节点

主节点,Nimbus

Nimbus is responsible for distributing code around the cluster, assigning tasks to machines, and monitoring for failures.

worker节点,Supervisor:

The supervisor listens for work assigned to its machine and starts and stops worker processes as necessary based on what Nimbus has assigned to it. Each worker process executes a subset of a topology

topology,拓扑结构(计算逻辑关系):

a running topology consists of many worker processes spread across many machines.

A topology is a graph of computation. Each node in a topology contains processing logic, and links between nodes indicate how data should be passed around between nodes.

Zookeeper:(协调系统)

All coordination between Nimbus and the Supervisors is done through a Zookeeper cluster.

Additionally, the Nimbus daemon and Supervisor daemons are fail-fast and stateless; all state is kept in Zookeeper or on local disk.

(ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户)

Thrift :

Since topology definitions are just Thrift structs, and Nimbus is a Thrift service, you can create and submit topologies using any programming language.

(thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。)

Streams:

The core abstraction in Storm is the “stream”. A stream is an unbounded sequence of tuples.

Storm provides the primitives for transforming a stream into a new stream in a distributed and reliable way.

spouts & bolts 

The basic primitives Storm provides for doing stream transformations are “spouts” and “bolts”. Spouts and bolts have interfaces that you implement to run your application-specific logic.

A spout is a source of streams (数据流的源头)

A bolt consumes any number of input streams,does some processing, and possibly emits (发送出)new streams.

Bolts can do anything from run functions, filter tuples, do streaming aggregations, do streaming joins, talk to databases, and more.

(加工消耗传给他的数据流,然后发出或传给下一个bolt)

spouts 和 bolts 组成的网络,就构成了一个topology,这是提交给storm执行的高层次抽象。

A topology is a graph of stream transformations where each node is a spout or bolt.

When a spout or bolt emits a tuple to a stream, it sends the tuple to every bolt that subscribed to that stream.

数据模型 

Data model

(http://storm.apache.org/documentation/Tutorial.html)

时间: 2024-12-13 23:43:25

storm相关技术的相关文章

Storm分布式实时流计算框架相关技术总结

Storm分布式实时流计算框架相关技术总结 Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍.以此为基础,后续再深入了解Storm的内部实现细节. 1. Zookeeper集群 Zookeeper是一个针对大型分布式系统的可靠协调服务系统,其采用类似Unix文件系统树形层次结构的数据模型(如:/zoo/a,/zoo/b),节点内可存储少量数据(<1M,当节点存储大数据量时,实际应用中可能出现同步问题). Zookeep

第五次作业-系统实现可能需要用到的技术,及学习相关技术的心得

一.系统实现可能需要用到的技术: 我们团队的项目是学生作业管理系统,为了实现这个系统,我们可能需要用到的技术有面向对象编程.UML建模.ASP.NET.C#.SQL server.JQuery 等. (1)面向对象程序设计(Object-Oriented Programming)是一种起源于六十年代,发展已经将近三十年的程序设计思想.对象是对现实世界实体的模拟,由现实实体的过程或信息来定义.一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的

XML涉及到的相关技术(编写+解析)

xml:即可扩展标记语言,用于描述关系型数据,也经常用作软件的配置文件:     1,编写xml文档一般基于一个约束文档,该文档用于规定xml的书写规范,常用的约束技术有        (1)XML DTD(早期技术) (2)XML Schema(现在主流技术)     2,编写好xml文档后,就需要对该文档进行解析,常见解析方式有两种:        (1)DOM解析(SUN官方标准)(2)sax解析(实际应用标准)     常用的解析开发包:Jaxp(SUN)(最差),Jdom,dom4j(

(1-1)Java领域的相关技术

JAVA主要分为3类:JavaEE.JavaSE和JavaME.其中,JavaEE是网络编程,主要应用在与网络软件.如各类网站.ERP软件等等:JavaSE是企业级开发,如QQ.各种音乐视频播放器等:而JavaME是手机开发,如各类手机游戏.手机软件等! (1-1)Java领域的相关技术,布布扣,bubuko.com

http缓存与cdn相关技术

摘要:最近要做这个主题的组内分享,所以准备了一个星期,查了比较多的资料.准备的过程虽然很烦很耗时间,不过因为需要查很多的资料,因此整个过程下来,对这方面的知识影响更加深刻.来来来,接下来总结总结 一 http缓存 1.1缓存的分类: http中具有缓存功能的是:1.浏览器缓存.  2.缓存代理服务器. 1.2 什么是缓存: http缓存的是指:当Web请求抵达缓存时, 如果本地有“已缓存的”副本,就可以从本地存储设备而 不是从原始服务器中提取这个文档. 1.3 缓存的好处有: 1. 减少了冗余的

初识-Android之智能短信项目相关技术整理

标签页切换采用传统的TabHost: 采用TabActivty实现TabHost. 效果图-后补: 相关技术详解推荐: http://blog.csdn.net/zhouli_05/article/details/7696054 这里我解决了一个TabActivity和子Activity共享TabActivity的OptionMenu的问题:文章在:http://www.cnblogs.com/woshijishu3/p/5218558.html 搜索功能:参考google搜索栏 效果图-后补

Android的JS调用Java代码或使用了Javascript相关技术改如何混淆

http://www.androidren.com/index.php?qa=282&qa_1=android的js调用java代码或使用了javascript相关技术改如何混淆 Android 4.2开始 JS调用Java代码的时候必须加上@JavascriptInterface才能调用. 加上@JavascriptInterface之后就必须要考虑混淆时候的问题,如果混淆的时候把@JavascriptInterface搞丢了你的程序就无法调用了. 其实很简单,你只需要在混淆里面加上: -ke

asp.net url重写相关技术问题整理

1.IIS7配置URL重写需要注意系统是32位还是64位的 在IIS7配置URL重写的时候,需要添加"脚本映射",如果是64位系统,会有两个地方存放.net framework分别是32位系统和64位系统的不同版本.如果是32位系统只有一个版本,所以一般不会出问题,如果是64位的系统需要选择64位系统中Framework64文件夹中的asp.net_isapi.dll,否则url重写无法生效. 其实还有一个地方可以设置来让我们不必要必须选择64位Framework,这个地方就是iis的

关于Web开发里并发、同步、异步以及事件驱动编程的相关技术

一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有童鞋说我这篇文章理论化很严重,没有实际代码和具体项目做支撑,这个评论让我有种理论和实践脱节的味道,所以我想在这里谈谈我为什么要写这篇文章的原因,这篇文章是把我前不久学习多线程编程的一个总结. 当我从我书堆里找到所有与多线程开发相关的书籍简单阅读后,我发现了一个问题,在java里开发多线程最强有力的实践就是做服