Storm WordCount

特别注意,在本地运行的时候应该去掉<scope>provided</scope>,否则会报java.lang.ClassNotFoundException: org.apache.storm.topology.IRichSpout

集群环境中运行的时候应该加上

在这个例子中,有一个spout,两个bolt,也就是说这个任务分为两步。spout随机发送一句话到stream,而SplitBolt负责将其分隔成一个一个单词,CountBolt负责计数。运行的时候,spout的并行数是3,SplitBolt的并行数是2,也就是说相当于有3个spout,2个SplitBolt,1个CountBolt。

运行的时候,直接右键运行main方法即可,输出结果大概是这样的:

简单的对比hadoop,可以这样理解storm:

Storm中的Topology相当于Hadoop中的Job

Storm中的Spout相当于Hadoop中的输入文件,而Bolt相当于MapReduce任务

Storm中的每一个处理是一个Bolt再到下一个Bolt,而Hadoop中是一个MapReduce任务再下一个MapReduce

如果一个任务需要分多步完成的话,那么在Storm中每一步就相当于一个Bolt,而在Hadoop中每一步相当于一个MapReduce任务

原文地址:https://www.cnblogs.com/cjsblog/p/8393326.html

时间: 2024-10-13 08:41:45

Storm WordCount的相关文章

storm wordcount实例

在storm环境部署完毕,并正确启动之后,现在就可以真正进入storm开发了,按照惯例,以wordcount作为开始.这个例子很简单,核心组件包括:一个spout,两个bolt,一个Topology.spout从一个路径读取文件,然后readLine,向bolt发射,一个文件处理完毕后,重命名,以不再重复处理.第一个bolt将从spout接收到的字符串按空格split,产生word,发射给下一个bolt.第二个bolt接收到word后,统计.计数,放到HashMap<string, intege

Storm wordcount Read from file

source code: package stormdemo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import jav

Storm WordCount Topology详解

1 package org.apache.storm.storm_core; 2 3 import java.util.Map; 4 5 import backtype.storm.task.OutputCollector; 6 import backtype.storm.task.TopologyContext; 7 import backtype.storm.topology.OutputFieldsDeclarer; 8 import backtype.storm.topology.bas

Storm入门(四)WordCount示例

Storm API文档网址如下: http://storm.apache.org/releases/current/javadocs/index.html 一.关联代码 使用maven,代码如下. pom.xml  和Storm入门(三)HelloWorld示例相同 RandomSentenceSpout.java /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor lice

基于Storm的WordCount

Storm WordCount 工作过程 Storm 版本: 1.Spout 从外部数据源中读取数据,随机发送一个元组对象出去: 2.SplitBolt 接收 Spout 中输出的元组对象,将元组中的数据切分成单词,并将切分后的单词发射出去: 3.WordCountBolt 接收 SplitBolt 中输出的单词数组,对里面单词的频率进行累加,将累加后的结果输出. Java 版本: 1.读取文件中的数据,一行一行的读取: 2.将读到的数据进行切割: 3.对切割后的数组中的单词进行计算. Hado

storm教程

二.安装部署 ? 一.storm伪分布式安装 (一)环境准备1.OS:debian 72.JDK 7.0 (二)安装zookeeper1.下载zookeeper并解压?wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz?tar -zxvf zookeeper-3.4.6.tar.gz2.准备配置文件cd confcp zoo_sample.cfg zoo.cfg?3.启动zoo

storm之6:API

(一)一个例子 本示例使用storm运行经典的wordcount程序,拓扑如下: sentence-spout->split-bolt->count-bolt->report-bolt 分别完成句子的产生.拆分出单词.单词数量统计.统计结果输出 完整代码请见 https://github.com/jinhong-lu/stormdemo 以下是关键代码的分析. 1.创建spout public class SentenceSpout extends BaseRichSpout { pri

(四)storm笔记

mkdir /var/storm conf/storm.yaml storm.zookeeper.servers: - "111.222.333.444" - "555.666.777.888" storm.local.dir: "/mnt/storm" nimbus.seeds: ["111.222.333.44"] slots.ports,指定每个机器上可以启动多少个worker,一个端口号代表一个worker super

高并发计算总数和去重

spout: package com.storm.WordCount; import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.task.TopologyContext; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.topology.base.BaseRichSpout; import backtype.