storm 任务提交过程

来源:互联网 发布:nginx 禁止外网访问 编辑:程序博客网 时间:2024/05/24 05:25

storm提交topology任务大概分为5个角色,一是:client,二是nimbus,三是zookeeper,四是supervisor,五是worker

下面介绍每个角色在任务提交的时候所做的一些操作:

1.client:提交topology
2.nimbus:这个角色所做的操作相对较多,具体如下:          a.会把提交的jar包放到nimbus所在服务器的nimbus/inbox目录下          b.submitTopology方法会负责topology的处理;包括检查集群是否有active节点、配置文件是否正确、是否有重复的topology名称、各个bolt/spout名是否使用相同的id等。          c.建立topology的本地目录,nimbus/stormdist/topology-uuid              该目录包括三个文件:              stormjar.jar --从nimbus/inbox目录拷贝              stormcode.ser --此topology对象的序列化              stormconf.ser --此topology的配置文件序列化          d.nimbus任务分配,根据topology中的定义,给spout/bolt设置task的数目,并分配对应的task-id,最后把分配好的信息写入到zookeeper的../task目录。          e.nimbus在zookeeper上创建taskbeats目录,要求每个task定时向nimbus汇报          f.将分配好的任务写入到zookeeper,此时任务提交完毕。zk上的目录为assignments/topology-uuid          g.将topology信息写入到zookeeper/storms目录
3.supervisor          a.定期扫描zookeeper上的storms目录,看看是否有新的任务,有就下载。          b.删除本地不需要的topology          c.根据nimbus指定的任务信息启动worker
4.worker          a.查看需要执行的任务,根据任务id分辨出spout/bolt任务          b.计算出所代表的spout/bolt会给哪些task发送信息          c.执行spout任务或者blot任务
原创粉丝点击