Mkdir-p/home/hadoop/zookeeper/data
Cd/home/hadoop/zookeeper/data
datadir=/home/hadoop/zookeeper/dataserver.1=10.10.113.41:2888:3888server.2=10.10.113.42:2888:3888server.3= 10.10.113.43:2888:3888
#zookeeperexport zookeeper==/home/hadoop/zookeeperpath= $PATH: $ZOOKEEPER/bin
zkserver.sh start
Path= $PATH:/home/hadoop/storm
Storm.zookeeper.servers: #zk地址-"10.10.113.41"-"10.10.113.42"-"10.10.113.43" Nimbus.host: "10.10.113.41" # Master node address supervisor.slots.ports: #worker端口 I have all the node configuration files are the same, because the master node does not participate in the calculation, so this block configuration can also. -6700-6701-6702-6703 Storm.local.dir: "/home/hadoop/storm/data" #数据存放地址
Nohup bin/storm Nimbus >/dev/null2>&1 & #启动主节点nohup bin/storm UI >/dev/null2>&1 & #启动stormUInohup bin/storm logviewer >/dev/null2>&1 & #启动logviewer functions
Nohup bin/storm Supervisor >/dev/null 2>&1 &nohup bin/storm logviewer >/dev/null 2>&1 &
ui.port=8089
<dependency><groupid>org.apache.storm</groupid><artifactid>storm-core</artifactid ><version>0.9.3</version></dependency>
Packagecn.oraclers.storm;importbacktype.storm.config;importbacktype.storm.stormsubmitter; Importbacktype.storm.generated.alreadyaliveexception;importbacktype.storm.generated.invalidtopologyexception; Importbacktype.storm.spout.spoutoutputcollector;importbacktype.storm.task.outputcollector; Importbacktype.storm.task.topologycontext;importbacktype.storm.topology.outputfieldsdeclarer; Importbacktype.storm.topology.topologybuilder;importbacktype.storm.topology.base.baserichbolt; Importbacktype.storm.topology.base.baserichspout;importbacktype.storm.tuple.fields; importbacktype.storm.tuple.tuple;importbacktype.storm.tuple.values;importbacktype.storm.utils.utils; importjava.util.hashmap;importjava.util.map;importjava.util.random; publicclasswordcount{ publicstaticclassspoutsourceextendsbaserichspout{ mapmap; Topologycontexttopologycontext; Spoutoutputcollectorspoutoutputcollector; Randomrandom; @Overridepublicvoidopen (Mapmap,topologycontexttopologycontext,spoutoutputcollectorspoutoutputcoLlector) {map=map;topologycontext=topologycontext;spoutoutputcollector=spoutoutputcollector;random=random;} string[]sentences=newstring[]{"Thecowjumpedoverthemoon", "Anappleadaykeepsthedoctoraway", " Fourscoreandsevenyearsago "," Snowwhiteandthesevendwarfs "," Iamattwowithnature "}; @OverridepublicvoidnextTuple () { Utils.sleep (+); for (stringsentence:sentences) {spoutoutputcollector.emit (newValues (sentence));}} @OverridepublicvoiddeclareOutputFields (outputfieldsdeclareroutputfieldsdeclarer) { Outputfieldsdeclarer.declare (Newfields ("sentence"));} } publicstaticclassSplitBoltSourceextendsBaseRichBolt{ Mapmap; Topologycontexttopologycontext;outputcollectoroutputcollector, @Overridepublicvoidprepare (Mapmap, Topologycontexttopologycontext,outputcollectoroutputcollector) {Map=map;topologycontext=topologycontext;o Utputcollector=outputcollector;} @Overridepublicvoidexecute (tupletuple) {Stringsentence=tuple.getstringbyfield ("sentence"); String[]words=sentence.split (""); for (Stringword:words) {This.outputCollector.emit (newValues (Word));}} @OverridepublicvoiddeclareOutputFields (outputfieldsdeclareroutputfieldsdeclarer) { Outputfieldsdeclarer.declare (Newfields ("word"));}} publicstaticclassSumBoltSourceextendsBaseRichBolt{Mapmap; topologycontexttopologycontext;outputcollectoroutputcollector; @Overridepublicvoidprepare (Mapmap, Topologycontexttopologycontext,outputcollectoroutputcollector) {this.map=map;this.topologycontext= Topologycontext;this.outputcollector=outputcollector;} Map<String,Integer>mapCount=newHashMap<String,Integer> (); @Overridepublicvoidexecute ( Tupletuple) {Stringword=tuple.getstringbyfield ("word"); Integercount=mapcount.get (word); if (count==null) {count=0;} Count++;mapcount.put (Word,count); outputcollector.emit (NewValues (Word,count)); } @ Overridepublicvoiddeclareoutputfields (outputfieldsdeclareroutputfieldsdeclarer) {OutputFieldsDeclarer.declare ( Newfields ("word", "count"));}} publicstaticvoidmAin (String[]args) throwsalreadyaliveexception,invalidtopologyexception{topologybuilderbuilder= Newtopologybuilder (); Builder.setspout ("Data_source", Newspoutsource ()); Builder.setbolt ("Bolt_split", Newsplitboltsource ()). Shufflegrouping ("Data_source"); Builder.setbolt ("Bolt_sum", Newsplitboltsource ()). Fieldsgrouping ("Bolt_split", Newfields ("word")); try{configstormconf=newconfig (); Stormconf.setdebug ( true); Stormsubmitter.submittopology ("Clustertopology", Stormconf,builder.createtopology ());} catch (Alreadyaliveexceptione) {e.printstacktrace ();} catch (Invalidtopologyexceptione) {e.printstacktrace ();}} }
./storm jar Storm jar Sd-1.0-snapshot.jar Cn.oraclers.storm.WordCount
This article is from the "8155900" blog, please be sure to keep this source http://8165900.blog.51cto.com/8155900/1721542
Storm Cluster Setup