use of org.apache.storm.LocalCluster.LocalTopology in project storm by apache.
the class TransactionalWords method main.
public static void main(String[] args) throws Exception {
MemoryTransactionalSpout spout = new MemoryTransactionalSpout(DATA, new Fields("word"), PARTITION_TAKE_PER_BATCH);
TransactionalTopologyBuilder builder = new TransactionalTopologyBuilder("top-n-words", "spout", spout, 2);
builder.setBolt("count", new KeyedCountUpdater(), 5).fieldsGrouping("spout", new Fields("word"));
builder.setBolt("bucketize", new Bucketize()).noneGrouping("count");
builder.setBolt("buckets", new BucketCountUpdater(), 5).fieldsGrouping("bucketize", new Fields("bucket"));
Config config = new Config();
config.setDebug(true);
config.setMaxSpoutPending(3);
try (LocalCluster cluster = new LocalCluster();
LocalTopology topo = cluster.submitTopology("top-n-topology", config, builder.buildTopology())) {
Thread.sleep(3000);
}
}
use of org.apache.storm.LocalCluster.LocalTopology in project storm by apache.
the class WordCountTopologyNode method main.
public static void main(String[] args) throws Exception {
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("spout", new RandomSentence(), 5);
builder.setBolt("split", new SplitSentence(), 8).shuffleGrouping("spout");
builder.setBolt("count", new WordCount(), 12).fieldsGrouping("split", new Fields("word"));
Config conf = new Config();
conf.setDebug(true);
if (args != null && args.length > 0) {
conf.setNumWorkers(3);
StormSubmitter.submitTopologyWithProgressBar(args[0], conf, builder.createTopology());
} else {
conf.setMaxTaskParallelism(3);
try (LocalCluster cluster = new LocalCluster();
LocalTopology topo = cluster.submitTopology("word-count", conf, builder.createTopology())) {
Thread.sleep(10000);
}
}
}
use of org.apache.storm.LocalCluster.LocalTopology in project storm by apache.
the class TridentWordCount method main.
public static void main(String[] args) throws Exception {
Config conf = new Config();
conf.setMaxSpoutPending(20);
if (args.length == 0) {
try (LocalDRPC drpc = new LocalDRPC();
LocalCluster cluster = new LocalCluster();
LocalTopology topo = cluster.submitTopology("wordCounter", conf, buildTopology(drpc))) {
for (int i = 0; i < 100; i++) {
System.out.println("DRPC RESULT: " + drpc.execute("words", "cat the dog jumped"));
Thread.sleep(1000);
}
}
} else {
conf.setNumWorkers(3);
StormSubmitter.submitTopologyWithProgressBar(args[0], conf, buildTopology(null));
}
}
use of org.apache.storm.LocalCluster.LocalTopology in project storm by apache.
the class SingleJoinExample method main.
public static void main(String[] args) throws Exception {
FeederSpout genderSpout = new FeederSpout(new Fields("id", "gender"));
FeederSpout ageSpout = new FeederSpout(new Fields("id", "age"));
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("gender", genderSpout);
builder.setSpout("age", ageSpout);
builder.setBolt("join", new SingleJoinBolt(new Fields("gender", "age"))).fieldsGrouping("gender", new Fields("id")).fieldsGrouping("age", new Fields("id"));
Config conf = new Config();
conf.setDebug(true);
try (LocalCluster cluster = new LocalCluster();
LocalTopology topo = cluster.submitTopology("join-example", conf, builder.createTopology())) {
for (int i = 0; i < 10; i++) {
String gender;
if (i % 2 == 0) {
gender = "male";
} else {
gender = "female";
}
genderSpout.feed(new Values(i, gender));
}
for (int i = 9; i >= 0; i--) {
ageSpout.feed(new Values(i, i + 20));
}
Utils.sleep(2000);
}
}
use of org.apache.storm.LocalCluster.LocalTopology in project storm by apache.
the class Flux method runCli.
private static void runCli(CommandLine cmd) throws Exception {
if (!cmd.hasOption(OPTION_NO_SPLASH)) {
printSplash();
}
boolean dumpYaml = cmd.hasOption("dump-yaml");
TopologyDef topologyDef = null;
String filePath = (String) cmd.getArgList().get(0);
// TODO conditionally load properties from a file our resource
String filterProps = null;
if (cmd.hasOption(OPTION_FILTER)) {
filterProps = cmd.getOptionValue(OPTION_FILTER);
}
boolean envFilter = cmd.hasOption(OPTION_ENV_FILTER);
if (cmd.hasOption(OPTION_RESOURCE)) {
printf("Parsing classpath resource: %s", filePath);
topologyDef = FluxParser.parseResource(filePath, dumpYaml, true, filterProps, envFilter);
} else {
printf("Parsing file: %s", new File(filePath).getAbsolutePath());
topologyDef = FluxParser.parseFile(filePath, dumpYaml, true, filterProps, envFilter);
}
String topologyName = topologyDef.getName();
// merge contents of `config` into topology config
Config conf = FluxBuilder.buildConfig(topologyDef);
ExecutionContext context = new ExecutionContext(topologyDef, conf);
StormTopology topology = FluxBuilder.buildTopology(context);
if (!cmd.hasOption(OPTION_NO_DETAIL)) {
printTopologyInfo(context);
}
if (!cmd.hasOption(OPTION_DRY_RUN)) {
if (cmd.hasOption(OPTION_REMOTE)) {
LOG.info("Running remotely...");
// should the topology be active or inactive
SubmitOptions submitOptions = null;
if (cmd.hasOption(OPTION_INACTIVE)) {
LOG.info("Deploying topology in an INACTIVE state...");
submitOptions = new SubmitOptions(TopologyInitialStatus.INACTIVE);
} else {
LOG.info("Deploying topology in an ACTIVE state...");
submitOptions = new SubmitOptions(TopologyInitialStatus.ACTIVE);
}
StormSubmitter.submitTopology(topologyName, conf, topology, submitOptions, null);
} else {
LOG.info("Running in local mode...");
String sleepStr = cmd.getOptionValue(OPTION_SLEEP);
Long sleepTime = DEFAULT_LOCAL_SLEEP_TIME;
if (sleepStr != null) {
sleepTime = Long.parseLong(sleepStr);
}
LOG.debug("Sleep time: {}", sleepTime);
LocalCluster cluster = null;
// in-process or external zookeeper
if (cmd.hasOption(OPTION_ZOOKEEPER)) {
String zkStr = cmd.getOptionValue(OPTION_ZOOKEEPER);
LOG.info("Using ZooKeeper at '{}' instead of in-process one.", zkStr);
long zkPort = DEFAULT_ZK_PORT;
String zkHost = null;
if (zkStr.contains(":")) {
String[] hostPort = zkStr.split(":");
zkHost = hostPort[0];
zkPort = hostPort.length > 1 ? Long.parseLong(hostPort[1]) : DEFAULT_ZK_PORT;
} else {
zkHost = zkStr;
}
// the following constructor is only available in 0.9.3 and later
try {
cluster = new LocalCluster(zkHost, zkPort);
} catch (NoSuchMethodError e) {
LOG.error("The --zookeeper option can only be used with Apache Storm 0.9.3 and later.");
System.exit(1);
}
} else {
cluster = new LocalCluster();
}
try (LocalTopology topo = cluster.submitTopology(topologyName, conf, topology)) {
Utils.sleep(sleepTime);
} finally {
cluster.shutdown();
}
}
}
}
Aggregations