大数据技术 storm学习
沉沙 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
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved