首页 > 代码库 > (三 )kafka-jstorm集群实时日志分析 之 ---------jstorm集成spring 续(代码)

(三 )kafka-jstorm集群实时日志分析 之 ---------jstorm集成spring 续(代码)

  本地模式启动的.

package com.doctor.kafkajstrom;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import org.apache.commons.lang.RandomStringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;

import com.doctor.kafkajstrom.log.manager.LogManager;
import com.doctor.kafkajstrom.util.SpringUtil;

import backtype.storm.Config;
import backtype.storm.LocalCluster;
import backtype.storm.spout.SpoutOutputCollector;
import backtype.storm.task.OutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.TopologyBuilder;
import backtype.storm.topology.base.BaseRichBolt;
import backtype.storm.topology.base.BaseRichSpout;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Tuple;
import backtype.storm.tuple.Values;

public class LocalJstormMain {

	public static void main(String[] args) {
		// Topology definition
		TopologyBuilder builder = new TopologyBuilder();
		builder.setSpout("word-reader", new WordReaderSpoutCh03());
		builder.setSpout("signals-spout", new SignalsSpoutCh03(),6);
		builder.setBolt("word-normalizer", new WordTransformBoltCh03(),6)
				.shuffleGrouping("word-reader");

		builder.setBolt("word-counter", new WordCounterBoltCh03(), 2)
				.fieldsGrouping("word-normalizer", new Fields("word"))
				.allGrouping("signals-spout", "signals");

		// Configuration
		Config conf = new Config();
		conf.setNumWorkers(3);
		conf.setDebug(true);
		// Topology run
		conf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING, 1);
		LocalCluster cluster = new LocalCluster();
		cluster.submitTopology("Count-Word-Toplogy-With-Refresh-Cache", conf, builder.createTopology());

//		try {
//			TimeUnit.MINUTES.sleep(2);
//		} catch (InterruptedException e) {
//			e.printStackTrace();
//		}
//		cluster.killTopology("Count-Word-Toplogy-With-Refresh-Cache");
//		cluster.shutdown();

	}

	public static class WordReaderSpoutCh03 extends BaseRichSpout {
		private static final Logger log = LoggerFactory.getLogger(WordReaderSpoutCh03.class);

		private static final long serialVersionUID = 1L;

		private TopologyContext context;

		private SpoutOutputCollector collector;

		private static final String WORDS = "sjdkfjksdjfdkjaaa中涉及看对方的罚款多级";

		@Override
		public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
			this.context = context;
			this.collector = collector;

		}

		@Override
		public void ack(Object msgId) {
			log.info("{Ok:{}}", msgId);
		}

		@Override
		public void fail(Object msgId) {
			log.info("{Ok:{}}", msgId);
		}

		@Override
		public void nextTuple() {
			
			this.collector.emit(new Values(RandomStringUtils.random(6, WORDS)));
		}

		@Override
		public void declareOutputFields(OutputFieldsDeclarer declarer) {
			declarer.declare(new Fields("line"));

		}

	}

	public static class SignalsSpoutCh03 extends BaseRichSpout {

		private static final long serialVersionUID = 1L;
		private SpoutOutputCollector spoutOutputCollector;

		@Override
		public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
			this.spoutOutputCollector = collector;
		}

		@Override
		public void nextTuple() {
			this.spoutOutputCollector.emit("signals", new Values("refreshCache"));
			try {
				TimeUnit.MILLISECONDS.sleep(2);
			} catch (Throwable e) {
			}

		}

		@Override
		public void declareOutputFields(OutputFieldsDeclarer declarer) {
			declarer.declareStream("signals", new Fields("action"));

		}

	}

	public static class WordTransformBoltCh03 extends BaseRichBolt {

		private static final long serialVersionUID = 1L;
		private OutputCollector collector;
		private int numCounterTasks = 0;

		@Override
		public void prepare(Map stormConf, TopologyContext context, OutputCollector collector) {
			this.collector = collector;
			this.numCounterTasks = context.getComponentTasks("word-counter").size();
		}

		@Override
		public void execute(Tuple input) {
			String[] lines = input.getString(0).split(" ");
			for (String line : lines) {
				String lowerCase = line.trim().toLowerCase();
				if (!lowerCase.isEmpty()) {
					this.collector.emit(new Values(line));
				}
			}

			this.collector.ack(input);
		}

		@Override
		public void declareOutputFields(OutputFieldsDeclarer declarer) {
			declarer.declare(new Fields("word"));

		}
	}

	public static class WordCounterBoltCh03 extends BaseRichBolt {
		private static final Logger log = LoggerFactory.getLogger(WordCounterBoltCh03.class);

		private static final long serialVersionUID = 1L;
		private Map<String, Integer> countMap;
		private OutputCollector collector;
		private String name;
		private int id;
		
		private static final ApplicationContext applicationContext;
		private static final LogManager logManager;
		
		static{
			applicationContext = SpringUtil.of("learningJstormConfig/spring-kafkabolt-context.xml");
			logManager = applicationContext.getBean(LogManager.class);
			log.info("--------------ApplicationContext initialized from learningJstormConfig/spring-kafkabolt-context.xml ");
		}

		@Override
		public void prepare(Map stormConf, TopologyContext context, OutputCollector collector) {
			this.countMap = new HashMap<>();
			this.collector = collector;
			this.name = context.getThisComponentId();
			this.id = context.getThisTaskId();
			log.info("-----------------WordCounterBoltCh03 prepare");
		}

		@Override
		public void execute(Tuple input) {
			String word = null;
			try {
				word = input.getStringByField("word");
			} catch (Throwable e) {
			}
			if (null != word) {
				if (!countMap.containsKey(word)) {
					countMap.put(word, 1);
				} else {
					Integer count = countMap.get(word);
					count++;
					countMap.put(word, count);
					
					logManager.write(word + ":" + countMap.get(word));
				}
			} else {
				if ("signals.".equals(input.getSourceStreamId()) && "refreshCache".equals(input.getStringByField("action"))) {
					cleanup();
					countMap.clear();
				}
			}

			this.collector.ack(input);

		}

		@Override
		public void declareOutputFields(OutputFieldsDeclarer declarer) {

		}

		@Override
		public void cleanup() {
			log.info("{cleanup................}");
			countMap.forEach((k, v) -> {
				log.info("{clean up.................}");
				log.info("k : {} , v : {}", k, v);
			});
		}

	}
}
 Spring加载代码:

public final class SpringUtil {
	private SpringUtil() {
		throw new IllegalAccessError("constructor should not access");
	}
	
	public static ApplicationContext of(String classPathConfigLocation){
		return new ClassPathXmlApplicationContext(classPathConfigLocation);
	}
}


spring 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans 
    xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://code.alibabatech.com/schema/dubbo
		http://code.alibabatech.com/schema/dubbo/dubbo.xsd 
		http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task.xsd">
        
  <import resource="classpath:/learningJstormConfig/dubbo-provider.xml"/>     
  <context:component-scan base-package="com.doctor.kafkajstrom.log.manager.imp" />
  <context:component-scan base-package="com.doctor.kafkajstrom.log.service.imp" />
  <context:component-scan base-package="com.doctor.kafkajstrom.component" />
</beans>

部分运行结果:

59519 [word-counter:2-BoltExecutors] ERROR kafka.producer.async.DefaultEventHandler  - Failed to send requests for topics kafka-test with correlation ids in [145,152]
10-30 22:15:11.581 word-counter:2-BoltExecutors INFO  c.d.k.l.m.i.LogManagerImp -  LogManagerImp write method :jdjkkj:2
10-30 22:15:12.021 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[的kakd的]
10-30 22:15:12.021 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[a罚j的j的]
10-30 22:15:12.021 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[涉方的级df]
10-30 22:15:12.021 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[kkas罚d]
10-30 22:15:12.021 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[对ja看sf]
10-30 22:15:12.022 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[a对的及kd]
10-30 22:15:12.022 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[及ks中方中]
10-30 22:15:12.022 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[j多方多级级]
10-30 22:15:12.022 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[涉j对fas]
10-30 22:15:12.022 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[kasa款级]
10-30 22:15:12.022 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[j多多aa多]
10-30 22:15:12.022 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[fjda涉及]
10-30 22:15:12.022 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[kkja涉及]
10-30 22:15:12.022 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [2]:[及s及ddk]
10-30 22:15:12.022 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[s及dks对]
10-30 22:15:12.022 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[jfd中a中]
10-30 22:15:12.023 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[jadj及涉]
10-30 22:15:12.023 signals-spout:15-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:15 signals to [1, 2]:[refreshCache]
10-30 22:15:12.023 signals-spout:14-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:14 signals to [1, 2]:[refreshCache]
10-30 22:15:12.023 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[多a多中a涉]
10-30 22:15:12.023 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[多方多及ad]
10-30 22:15:12.023 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[d中djfd]
10-30 22:15:12.024 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [1]:[及fd款对j]
10-30 22:15:12.024 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[及ksjjs]
10-30 22:15:12.024 signals-spout:11-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:11 signals to [1, 2]:[refreshCache]
10-30 22:15:12.024 signals-spout:12-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:12 signals to [1, 2]:[refreshCache]
10-30 22:15:12.024 signals-spout:16-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:16 signals to [1, 2]:[refreshCache]
10-30 22:15:12.024 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [1]:[j多f多kj]
10-30 22:15:12.025 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[中看f中罚a]
10-30 22:15:12.025 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[s罚j款看罚]
10-30 22:15:12.025 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[f罚s及多罚]
10-30 22:15:12.025 signals-spout:13-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:13 signals to [1, 2]:[refreshCache]
10-30 22:15:12.025 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[款kk级f涉]
10-30 22:15:12.026 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[k多k对方k]
10-30 22:15:12.026 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[fs的及aj]
10-30 22:15:12.026 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[j看款k级款]
10-30 22:15:12.027 signals-spout:14-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:14 signals to [1, 2]:[refreshCache]
10-30 22:15:12.027 signals-spout:15-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:15 signals to [1, 2]:[refreshCache]
10-30 22:15:12.027 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[df的aaj]
10-30 22:15:12.027 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [2]:[及对级djd]
10-30 22:15:12.027 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[a级j对的看]
10-30 22:15:12.028 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [2]:[k罚a涉及k]
10-30 22:15:12.028 signals-spout:16-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:16 signals to [1, 2]:[refreshCache]
10-30 22:15:12.028 signals-spout:12-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:12 signals to [1, 2]:[refreshCache]
10-30 22:15:12.028 signals-spout:11-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:11 signals to [1, 2]:[refreshCache]
10-30 22:15:12.028 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[款涉罚dad]
10-30 22:15:12.029 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[看中d方aj]
10-30 22:15:12.029 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [1]:[jaj中对款]
10-30 22:15:12.029 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [2]:[jk中d级看]
10-30 22:15:12.029 signals-spout:13-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:13 signals to [1, 2]:[refreshCache]
10-30 22:15:12.030 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [1]:[中j对kj及]
10-30 22:15:12.030 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[d中罚的k中]
10-30 22:15:12.030 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [1]:[kj多方d对]
10-30 22:15:12.031 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[sa看j的d]
10-30 22:15:12.031 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [1]:[的k多f款多]
10-30 22:15:12.031 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[kj中js的]
10-30 22:15:12.031 signals-spout:14-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:14 signals to [1, 2]:[refreshCache]
10-30 22:15:12.031 signals-spout:15-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:15 signals to [1, 2]:[refreshCache]
10-30 22:15:12.031 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[d中jkss]
10-30 22:15:12.032 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[涉看k看的a]
10-30 22:15:12.032 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [1]:[a级对级及看]
10-30 22:15:12.032 signals-spout:16-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:16 signals to [1, 2]:[refreshCache]
10-30 22:15:12.032 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[jdjak看]
10-30 22:15:12.032 signals-spout:12-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:12 signals to [1, 2]:[refreshCache]
10-30 22:15:12.032 signals-spout:11-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:11 signals to [1, 2]:[refreshCache]
10-30 22:15:12.032 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[级fa方kj]
10-30 22:15:12.032 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[对kaj中方]
10-30 22:15:12.033 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[ajdj中d]
10-30 22:15:12.033 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [2]:[jdd及对对]
10-30 22:15:12.033 signals-spout:13-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:13 signals to [1, 2]:[refreshCache]
10-30 22:15:12.033 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[f的ff罚f]
10-30 22:15:12.034 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[saaada]
10-30 22:15:12.034 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[ska方对s]
10-30 22:15:12.034 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[罚aj中d看]
10-30 22:15:12.034 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [1]:[dsj多看对]
10-30 22:15:12.035 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [2]:[j级s对aj]
10-30 22:15:12.035 signals-spout:15-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:15 signals to [1, 2]:[refreshCache]
10-30 22:15:12.035 signals-spout:14-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:14 signals to [1, 2]:[refreshCache]
10-30 22:15:12.035 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [1]:[sj中涉方a]
10-30 22:15:12.035 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[akkjdf]
10-30 22:15:12.035 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[kad及s方]
10-30 22:15:12.036 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[a看中a看d]
10-30 22:15:12.036 signals-spout:16-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:16 signals to [1, 2]:[refreshCache]
10-30 22:15:12.036 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [1]:[k级看k的涉]
10-30 22:15:12.036 signals-spout:12-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:12 signals to [1, 2]:[refreshCache]
10-30 22:15:12.036 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [2]:[kdaaa及]
10-30 22:15:12.036 signals-spout:11-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:11 signals to [1, 2]:[refreshCache]
10-30 22:15:12.037 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [1]:[级多jjjj]
10-30 22:15:12.037 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[及jsajd]
10-30 22:15:12.037 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [1]:[及a款afs]
10-30 22:15:12.037 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[款对j罚k看]
10-30 22:15:12.037 signals-spout:13-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:13 signals to [1, 2]:[refreshCache]
10-30 22:15:12.037 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[k级asa方]
10-30 22:15:12.037 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [2]:[f款sk涉方]
10-30 22:15:12.038 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [1]:[ks及多款a]
10-30 22:15:12.038 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[fjkfa看]
10-30 22:15:12.038 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [1]:[fjjaa对]
10-30 22:15:12.038 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [1]:[jfkf对k]
10-30 22:15:12.038 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[款涉多s方级]
10-30 22:15:12.038 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[级及kss级]
10-30 22:15:12.038 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[涉k中kjj]
10-30 22:15:12.038 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[jjjdjs]
10-30 22:15:12.038 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[ajjadf]
10-30 22:15:12.038 signals-spout:15-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:15 signals to [1, 2]:[refreshCache]
10-30 22:15:12.038 signals-spout:14-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:14 signals to [1, 2]:[refreshCache]
10-30 22:15:12.038 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [2]:[f对dd多a]
10-30 22:15:12.039 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [2]:[方级j涉中款]
10-30 22:15:12.039 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [2]:[看看及级aj]
10-30 22:15:12.039 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[fd方d多涉]
10-30 22:15:12.039 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[的j对as级]
10-30 22:15:12.039 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [2]:[ka罚对看j]
10-30 22:15:12.039 signals-spout:16-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:16 signals to [1, 2]:[refreshCache]
10-30 22:15:12.039 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [2]:[djs款fa]
10-30 22:15:12.039 signals-spout:12-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:12 signals to [1, 2]:[refreshCache]
10-30 22:15:12.039 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [1]:[款的及jf方]
10-30 22:15:12.040 signals-spout:11-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:11 signals to [1, 2]:[refreshCache]
10-30 22:15:12.040 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[ddskjs]
10-30 22:15:12.040 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [1]:[款asjjk]
10-30 22:15:12.040 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [1]:[s级jas级]
10-30 22:15:12.040 word-normalizer:7-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:7 default to [1]:[da及s及方]
10-30 22:15:12.040 word-normalizer:8-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:8 default to [2]:[款saajs]
10-30 22:15:12.040 word-normalizer:3-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:3 default to [1]:[k中djsj]
10-30 22:15:12.040 signals-spout:13-SingleThreadSpoutExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from signals-spout:13 signals to [1, 2]:[refreshCache]
10-30 22:15:12.041 word-normalizer:4-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:4 default to [1]:[akf中罚罚]
10-30 22:15:12.041 word-normalizer:6-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:6 default to [2]:[j看的看方k]
10-30 22:15:12.041 word-normalizer:5-BoltExecutors INFO  c.a.j.t.c.TaskSendTargets -  Emit from word-normalizer:5 default to [2]:[djjaa及]

(三 )kafka-jstorm集群实时日志分析 之 ---------jstorm集成spring 续(代码)