首页 > 其他 > 详细

Storm实时计算框架的编程模式

时间:2016-01-03 22:23:54      阅读:285      评论:0      收藏:0      [点我收藏+]

storm分布式流式计算框架。

nimbus:主进程服务(职责就是任务的分配的,程序的分发)

supervisor:工作进程服务(职责就是启动线程池,接受任务,运行任务,报告任务的运行状态)

注意容错:supervisor与nimbus都是基于zookeeper来实现容错,任务运行的元数据存储的zk里面,如果工作节点宕机,zk可以发现,执行触发机制,通知nimbus,对任务进行重新的分发。

下面看一下提供的编程模型

===================================

实现IRichSpout接口(BaseRichSpout),表示此处就是数据的源(1.设置数据格式-字段,2.初始化业务对象,3.处理完数据之后发送数据到下游) []

@Override
        public void declareOutputFields(OutputFieldsDeclarer arg0) {
            //设置输出的数据格式字段
        }
        
        @Override
        public void open(Map arg0, TopologyContext arg1,SpoutOutputCollector arg2) {
            //首先获取到SpoutOutputCollector
            //初始化相关的参数数据
        }
        
        @Override
        public void nextTuple() {
            //开始处理数据
        }

实现IRichBolt接口(BaseBasicBolt ),表示对数据的处理逻辑接口(初始化对象,处理数据,发送到下游继续处理)

@Override
		public void prepare(Map arg0, TopologyContext arg1, OutputCollector arg2) {
			//初始化相关的参数对象OutputCollector
		}
		
		@Override
		public void declareOutputFields(OutputFieldsDeclarer arg0) {
			//声明处理输出的字段数据 
		}
		
		@Override
		public void execute(Tuple arg0) {
			//处理业务数据接口
		}

组装通过Topology实现,设置spout,bolt的pie流程关系,设置任务的名称以及并行度等参数,此类里面有个main函数就是执行的入口函数。

spout源端的实现比如常见的MQ消息,因为实时的数据处理为了降低耦合度以及并发基本采用的都是类似的模式。

 

Storm实时计算框架的编程模式

原文:http://www.cnblogs.com/gstsyyb/p/5097192.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!