工作需要接触到jstorm JStorm集群包含两类节点:主控节点(Nimbus)和工作节点(Suprvisor)
先了解他是干什么的
分布式实时计算引擎,就是你给他数据,按照你编写的规则,他处理完
标准解释:用户按照规定的变成规范实现一个任务,将任务放到jstorm上,jstorm就将任务7*24小时调度起来
优点:开发非常迅速,容易上手,就像有水龙头 -》污水池处理 --》下游
扩展性极好,一个worker坏了调度器nimbus会马上分配另外一个
准确性比较高,采用了acker机制,保证数据不丢失,
使用场景:日志分析,管道系统,消息转化,统计分析
这几个术语要知道
角色 作用
Nimbus 调度器 分配任务的
Supervisor Worker的代理角色,负责Kill掉Worker和运行Worker 污水池处理的
Worker Task的容器 工人
Task 任务的执行者 工人
ZooKeeper 系统的协调者 系统协调者
stream 流 流是一个无间断的连续的tuple元值,
spout 原始元祖的源头,就像是水龙头,这个可能是消息中间件如MQ,Kafka,TBNofity 不间断发出消息
有了源头,有了tuple,拿着这些数据的处理过程就是Bolt
Bolt 消费任意数量的输入流,污水池 ,
你的spout打开了,想得到那种类型的水就打开那种类型的Bolt,处理完就会再进行下一步处理或者流向别的容器
Tuple value list 值列表
Topology 有向无环图即拓扑,一个拓扑就是一个数据流转图,途中标注每一个节点是一个spout还是bolt,把元祖数据发送到那个bolt,
worker和task
worker表示一个进程,tash表示一个线程,一个进程对应多个线程,
Supervisor是JStorm中的工作节点,类似于MR的TT,subscribe zookeeper的任务调度结果数据,根据任务调度情况启动/停止工作进程Worker。同时Supervisor需要定期向zookeeper写入活跃端口信息以便Nimbus监控。Supervisor不执行具体处理工作,所有的计算任务都交Worker完成。从整个架构上看,Supervisor处在整个JStorm三级管理架构的中间环节,辅助管理任务调度和资源管理工作。
Supervisor单节点架构如上图所示,初始化时启动进程Supervisor,根据Nimbus分配的任务情况触发启动/停用Worker JVM进程,其中每个Worker进程启动一个或多个Task线程,其中Task须同属单个Topology。从整个Supervisor节点来看运行多个JVM进程,包括一个Supervisor进程和一个或多个Worker进程。
不同角色状态通过不同的方式维护。其中Task通过hb直接将包括时间信息和当前Task的统计信息写到zookeeper;Worker定期将包括Topology id,端口,Task id集合及当前时间写入本地;Supervisor定期将包括时间及节点资源(端口集合)写到zookeeper,同时从zookeeper读取任务调度结果,根据结果启动/停用Worker进程。
记住这个图片基本上没什么打的困难了入门了就,
了解这个也得知道一个流的概念,就是水龙头 -》污水池处理 --》下游
这个链接比较形象https://www.cnblogs.com/smartloli/p/4810362.html
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。