Storm
storm
宝哥大数据
大数据、机器学习、深度学习
展开
-
spark与storm对比 待完善
其实是spark streaming与storm对比spark streaming 是毫秒级别 准实时storm 是 实时原创 2020-04-22 14:31:07 · 276 阅读 · 0 评论 -
Strom学习00--介绍
Storm是一个分布式、容错的实时计算系统。 Storm是由BackType开发的实时处理系统,由Twitter开源 在2013年的时候,Storm进入Apache社区进行孵化,最终进 入了Apache顶级项目Storm实时低延迟的两个原因:Storm进程是常驻内存的,不像hadoop里面的不断启停, 就没有不断启停的开销。第二点:Storm的数据不经过磁盘,都在内存中, 处理完了就没有了,原创 2017-03-05 20:13:56 · 551 阅读 · 0 评论 -
Strom学习01--例子ExclamationTopology
案例代码这个Storm最简单的案例, 是从安装包的examples中获取的, 本例是完全基于java.package storm.starter;原创 2017-03-08 10:28:47 · 825 阅读 · 0 评论 -
Strorm学习05--DRPC实时请求应答服务
一、什么事DPRC - RPC (Remote Procedure Call Protocol)——远程过程调用协议 - Distributed RPC:rpc请求流式、并进行处理 - RPC请求参数当做输入流,结果当做输出流 - 利用storm的分布式进行处理机制和能力 - 借助DRPC server接收请求、返回响应 二、原创 2017-03-11 11:26:22 · 778 阅读 · 0 评论 -
flume+kafka+storm整合01bak
flume+kafka+storm整合00 中使用KafkaSpout提供数据接下来设置Bolt 对数据进行处理1.1、第一个Bolt 原始数据进行处理, 剔除字段不足的数据declarer.declare(new Fields("srcIp", "destIp"));1.2、第二个Bolt即MiddleSumBolt统计每10秒内的ip计数, 这个是为了最后进行合计Bol...原创 2018-03-07 23:21:19 · 370 阅读 · 0 评论 -
storm--topN
strom topN — RollingCountBolt1、Spout 数据源很简单, 随机发送一个字符串数组中的字符串。2、第一个Bolt— RollingCountBolt,2.1、在execute中,只有等到TupleHelpers.isTickTuple(tuple),才可以发送 @Override public void execute(T...原创 2018-03-09 10:05:18 · 774 阅读 · 0 评论 -
IBolt
IBolt1.1、prepare方法此方法和Spout中的open方法类似,为Bolt提供了OutputCollector,用来从Bolt中发送Tuple。执行在execute方法之前 @Override public void prepare(Map stormConf, TopologyContext context, OutputColl...原创 2018-05-28 09:45:05 · 459 阅读 · 0 评论 -
storm--通过sleep定时统计topN
###1.1、模拟发送源1.1.1、nextTuple() String[] words = new String[] {"hello", "world", "hadoop", "hive", "spark", "hbase"}; //随机发送单词 String word = words[new Random().nextInt(原创 2018-06-12 08:59:45 · 488 阅读 · 0 评论 -
统计周期内数据的量
统计5分钟粒度时间的数据指标1.1、每个周期数据按照统计时间点,指标存入TreeMap(treemap是按照自然排序,为了在每个周期提交的时候,将前一个时间点的统计指标存入数据库中), /** * 记录一个周期内的数据,包含两个时间点 * TreeMap key: 时间的值,<br> * Map key: itemKey , 统...原创 2020-05-07 09:34:17 · 432 阅读 · 0 评论 -
统计周期内数据的量改进
由于上篇统计周期内数据的量的缺陷, 本文中稍做修改, 每个周期启动三个统计时间点,不会造成数据指标错乱,但是时延增加。两个方法自行衡量。lastCheckTime 09:25:33 start ...preKey:08curKey:09lastKey:10lastCheckTime 10:25:33 提交08的数据 所以时延为两个周期preKey:09curKey:...原创 2020-05-07 09:34:31 · 182 阅读 · 0 评论 -
统计sendpay维度下,的有效订单量, 用户数, 总金额,优惠后金额,
在sendpay的维度下,统计某天的有效订单量, 用户数, 总金额,优惠后金额,select count(id) 有效订单量,sum(totalprice) 优惠金额,sum(totalprice-youhui) 优惠后金额,count(distinct(memberid)) 用户数,sendpay 手机客户端下单标记from realtime_orderswhere c...原创 2018-06-30 19:08:18 · 2380 阅读 · 0 评论 -
发送系统级别的Tuple
一、通过发送系统级别的Tuple进行计算该时间段的数据设置发送系统级别tuple的时间间隔 Config conf = new Config(); //设置定时发送系统级别的tuple. conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 5); 这样每个Bolt在设置的时间间隔都会收...原创 2018-06-27 22:54:54 · 229 阅读 · 0 评论 -
Storm问题
1.1、died backtype.storm.generated.InvalidTopologyException 解决方法: 参考https://blog.csdn.net/BigData_Mining/article/details/798944351)检查Spout和Bolt代码中的declareOutputFields方法2)declare的Field数量 等于 collect...原创 2018-10-25 09:22:07 · 358 阅读 · 0 评论 -
Storm学习00-Storm的配置文件各个选项及释义
Storm的配置文件各个选项及释义原创 2017-03-15 17:55:22 · 661 阅读 · 0 评论 -
Strom学习00---ack机制
Storm的ack机制1、Tuple树 在Storm的一个topoplogy中,Spout通过SpoutOutputCollector的emit()发射一个tuple(源)即消息,然后经过topology定义的多个Bolt处理时,就会产生一个或者多个新的Tuple,源Tuple和新的Tuple构成一个Tuple树。 当整棵树处理完了,才算一个Tuple完全处理。 其中任何一个节点的Tuple处原创 2017-03-14 22:53:04 · 807 阅读 · 0 评论 -
Storm学习00---Storm的并发模型
一、Strom的并发模型的五个层次集群级别:cluster节点级别:supervisor进程级别:worker conf.setNumWorkers(3);设置topology有3个Worker。线程级别:executor 在TopologyBuilder.setBolt(String id, IRichBolt bolt, Number parallelism_hint), 中的para原创 2017-03-14 19:34:08 · 720 阅读 · 0 评论 -
flume+kafka+storm整合00
一、安装flume,kafka, storm 的安装在下面三篇文章: flume:1.6.0 kafka:注意这里最好下载scala2.10版本的kafka,因为scala2.10版本的兼容性比较好和2.11版本差别太大 flume学习01—安装 kafka安装部署 storm安装部署二、各个部分调试2.1、flumeflume Source之SpoolD...原创 2017-03-19 11:40:46 · 1550 阅读 · 1 评论 -
flume+kafka+storm整合02---问题
1、启动storm时总是报错storm Session 0x0 for server null, unexpected error, closing socket connection原因:由于我将zookeeper的端口改为了3384, 而storm连接zookeeper集群,使用的默认端口时2181, 所以无法连接解决: 使用storm.zookeeper.port来设...原创 2017-03-20 21:28:03 · 675 阅读 · 1 评论 -
flume+kafka+storm整合01
具体实现1、实现Spout, 因为Storm源数据是从kafka中获取, 所以使用storm提供的KafkaSpout //由于Spout是从kafka中获取数据, Storm提供了KafkaSpout //配置kafkaSpout //kafka的topic, 是为了方便从哪儿拿数据 String topic = "testFlum原创 2017-03-20 18:36:15 · 1009 阅读 · 0 评论 -
Strorm学习02--Storm安装
一、安装启动zookeeper ZK为什么要用3.4.5,因为它支持磁盘的快照和namenode的定期删除, 避免磁盘被打满 配置:# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial synchronization phase can take init原创 2017-03-08 19:11:39 · 900 阅读 · 1 评论 -
Storm06---流式处理(异步)
流式处理逐条处理 如:ETL,把关心的数据提取,标准格式入库,它的特点是我把数据给你了,不用再返回给我,这个是异步的 。分析统计 如:日志PV,UV统计,访问热点统计,这类数据之间是有关联的, 比如按某些字段做聚合,加和,平均等等 最后写道redis,hbase ,mysql 或者其他的数据库中, 供其它平台消费。原创 2017-03-12 12:16:11 · 928 阅读 · 0 评论 -
Strom学习00---ISpout
ISpoutISpout是实现Spout的核心接口, Spout负责将数据送到topology中处理, Storm 会跟踪Spout发出的tuple的DAG:当Storm发现tuple的DAG成功的执行处理, 会发送一个ack message给spout,当执行失败, 会发送以恶fail message 给spout;Spout每次释放tuple, 都会用一个id标记该tuple, 这个id可原创 2017-03-12 20:08:26 · 1189 阅读 · 0 评论 -
Storm学习00--IComponent
##IComponent IComponent继承Serializable接口, 为topology中所有可能组件提供共同的方法。 interface IComponent extends Serializable提供两个方法/** * Common methods for all possible components in a topology. This interface is us原创 2017-03-12 20:49:12 · 813 阅读 · 0 评论 -
Strom学习01--例子WordCountTopology
WordCountTopologySpoutspout为数据的源头,通过TopologyBuilder创建一个Spout ,用于模拟数据的源头, builder.setSpout("spout", new RandomSentenceSpout(), 5);我们看看Spout的业务处理流程:RandomSentenceSpout 具体关于ISpout的几个方法 提供了一个open()对原创 2017-03-12 18:54:12 · 1420 阅读 · 0 评论 -
Strom学习00---Grouping
storm分组策略 (1)ShuffleGrouping:随机分组,**随机分发**Stream中的tuple,保证每个Bolt的Task接收Tuple数量大致一致; (2)FieldsGrouping:按照字段分组,保证相同字段的Tuple分配到同一个Task中; (3)AllGrouping:广播发送,每一个Task都会受到所有的Tuple; (4)Global原创 2017-03-12 23:10:37 · 411 阅读 · 0 评论 -
Storm学习03--各个角色的功能
Strom的架构 从上图我们可以看到:Strom中有几个主要的角色: nimbus, zookeeper, supervisor, worker, executor,使得Strom健壮的运行。 二、各个角色的功能Nimbus集群管理调度topologysupervisor启停WorkerWorker一个JVM进程资源分配的单位启动executorExecutor实际干活的原创 2017-03-13 20:12:58 · 1856 阅读 · 1 评论 -
Storm学习10---tuple 结构
Storm中的数据结构类型为Tuple 官方解释: “A tuple is a named of values where each value can be any type.” tuple是一个类似于列表的东西,存储的每个元素叫做field(字段),可以是任何类型。 Storm使用tuple作为它的数据模型, 每个tuple是一堆值,每个值都有一个名字, 一个Tuple代表数据流原创 2017-03-13 22:32:37 · 2707 阅读 · 2 评论 -
Storm学习00---Storm的设计思想
Storm的设计思想 在Strom中有对流的抽象,流是一个不间断的无界的连续的tuple,注意Storm在建模事件流时, 把流中的事件抽象为tuple即元组 Storm认为每个stream都有一个源,也就是stream源头, 将这个源头抽象为Spout。 spout从某个队列中不断获取元素,并封装为tuple发射。有了源头即spot也就有了steam,那么如何处理stream中的tup原创 2017-03-14 09:03:00 · 1998 阅读 · 2 评论 -
Storm目录导图
Strom样例代码原创 2018-06-20 13:44:01 · 1016 阅读 · 0 评论