沉沙
2018-09-27
来源 :
阅读 1753
评论 0
摘要:本篇教程探讨了大数据技术 storm学习,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。
本篇教程探讨了大数据技术 storm学习,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。
<
------------stream计算.实时性。
master/slavenimbus //mastersupervisor //work node //zk
spout //龙头,源源不断产生数据 nextTuple() bolt //接头.
tuple //List<>
storm.yaml-------------- zkserver: local.dir= slot.ports //槽位 - 6700 //worker process - 6701executor //执行线程task //任务topology //拓扑。hadoop job
Spout extends BaseRichSpout{ open(){ ... } nextTuple(){ }
public void declareOutputFields(OutputFieldsDeclarer declarer) { declarer.declare(new Fields("site")); }}
Bolt extends BaseBasicBolt{ execute(Tuple input, BasicOutputCollector collector){ ... }
public void declareOutputFields(OutputFieldsDeclarer declarer) { .. }}
storm操作模式--------------------- 1.local LocalCluster //本地集群 2.StormSubmitter deactivate ------------------- 暂停top运行,不在产生新的tuple,但是已经发出的tuple继续运行。 $>storm deactivate com.it18zhang.storm2.MyApp
activate----------------- $>storm activate com.it18zhang.storm2.MyApp
kill----------------- //先进入deactive工作 $>storm kill LearningStormSingleNodeTopology 配置拓扑的并行----------------- 1.worker prcess jvm. storm可以同时运行多个top. 一个worker process只隶属于一个top,并且可以中该top中的多个组件。 top之间无法共享worker process.
2.executor //执行线程 在worker process内部,可以有多个executor线程,他们可执行top的一部分。 executor只能执行一个组件。 每个executor都是一个单独的线程,只能按序执行指派给他的tasks. 在top执行期间可以动态修改执行线程的个数。 容易控制各种组件的并发度。
3.task top执行过程的最小单位。 每个task是spout或者bolt的一个实例。 定义top时,可以指定spout/bolt的task数量。 定义之后,运行期间,task不能修改。 task可以单独执行,也可以和其他同类型的task执行。
配置并发程度-------------------- 1.worker process Config conf = ... conf.setNumberWorkers(3); //设置进程数 2.executor数 TopologyBuiler.setSpout(?,?,x); //x 为Spout执行线程数 TopologyBuiler.setBolt(?,?,x); //x bolt的执行线程数 3.task数 SpoutDeclarer spoutDeclare = builder.setSpout("LearningStormSpout", new MySpout(), 4); spoutDeclare.setNumTasks(2);
BoltDeclarer boltDeclare = builder.setBolt("LearningStormBolt", new MyBolt(), 2); boltDeclare.shuffleGrouping("LearningStormSpout"); boltDeclare.setNumTasks(4);
4.计算并发度 worker process‘s num = 3 ; //top
spout executor‘s num = 3 ; bolt executor‘s num = 3 ;
bolt task‘s num = 6 ;
并发度 = spout‘task + bolt task
再平衡:rebalance------------------- 1.如果增加新的supervisor之后,如果不进行再平衡处理,则新的supervisor是idle。 2.再平衡 a.web ui b.cli $>storm rebalance [TopologyName] -n [NumberOfWorkers] -e [Spout]=[NumberOfExecutos] -e [Bolt1]=[NumberOfExecutos] [Bolt2]=[NumberOfExecutos] $>storm rebalance MyStormApp -n 2 -e spout=1 -e bolt=2 3. 4.
com.it18zhang.storm2.MyApp
流分组-------------------- 1.Suffle 随机选择一个bolt接收tuple。尽可能在bolt之间平均分配。 2.FieldsGroup 字段分组,是根据tuple中指定的字段值进行hash处理之后,进入指定的task。 MySpount.emit() declear("site")
MyBolt.execute() 3. 4. 5.
-----xcall from s400 ------s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--0s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--1s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--2s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--3s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--4s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--5s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--6s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--7s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--8s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--9s400#7116#40-Thread-7-spout-executor[6 6]#com.it18zhang.grouping.MySpout@11990129#com.it18zhang.grouping.MySpout@11990129--10
-----xcall from s200 ------s200#7360#46-Thread-13-bolt-executor[5 5]#com.it18zhang.grouping.MyBolt@63f0305d#com.it18zhang.grouping.MySpout@11990129--0s200#7360#46-Thread-13-bolt-executor[5 5]#com.it18zhang.grouping.MyBolt@63f0305d#com.it18zhang.grouping.MySpout@11990129--6s200#7360#46-Thread-13-bolt-executor[5 5]#com.it18zhang.grouping.MyBolt@63f0305d#com.it18zhang.grouping.MySpout@11990129--7s200#7360#46-Thread-13-bolt-executor[5 5]#com.it18zhang.grouping.MyBolt@63f0305d#com.it18zhang.grouping.MySpout@11990129--8s200#7360#46-Thread-13-bolt-executor[5 5]#com.it18zhang.grouping.MyBolt@63f0305d#com.it18zhang.grouping.MySpout@11990129--9
s200#7360#40-Thread-7-bolt-executor[3 3]#com.it18zhang.grouping.MyBolt@1674ee80#com.it18zhang.grouping.MySpout@11990129--1s200#7360#40-Thread-7-bolt-executor[3 3]#com.it18zhang.grouping.MyBolt@1674ee80#com.it18zhang.grouping.MySpout@11990129--2s200#7360#40-Thread-7-bolt-executor[3 3]#com.it18zhang.grouping.MyBolt@1674ee80#com.it18zhang.grouping.MySpout@11990129--3s200#7360#40-Thread-7-bolt-executor[3 3]#com.it18zhang.grouping.MyBolt@1674ee80#com.it18zhang.grouping.MySpout@11990129--4s200#7360#40-Thread-7-bolt-executor[3 3]#com.it18zhang.grouping.MyBolt@1674ee80#com.it18zhang.grouping.MySpout@11990129--5s200#7360#40-Thread-7-bolt-executor[3 3]#com.it18zhang.grouping.MyBolt@1674ee80#com.it18zhang.grouping.MySpout@11990129--10
-----xcall from s200 ------s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--0s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--1s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--2s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--3s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--4s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--5s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--6s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--7s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--8s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--9s200#7360#38-Thread-5-spout-executor[7 7]#com.it18zhang.grouping.MySpout@1aa701a1#com.it18zhang.grouping.MySpout@1aa701a1--10
-----xcall from s400 ------
s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--0s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--1s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--2s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--3s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--4s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--5s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--6s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--7s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--8s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--9s400#7116#44-Thread-11-bolt-executor[4 4]#com.it18zhang.grouping.MyBolt@adb610#com.it18zhang.grouping.MySpout@1aa701a1--10
本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号