文档章节

storm学习1

月下独酌100
 月下独酌100
发布于 2014/10/26 16:42
字数 505
阅读 187
收藏 3

视频学习的摘录

案例

统计用户ip所在地域的统计值


典型应用场景

请求应答(同步)

流式处理 (异步)

 -逐条处理

    数据之间无关系:如实时日志格式标准化入库。

 -分析处理

    数据之间有关系(聚合等):如日志pv/uv统计、访问热点统计


DGA计算模型

tuple:数据处理单元

stream:持续的tuple流

spout:从外部获取数据,输出原始tuple

bolt:接收spout/bolt输出的tuple,处理、输出新tuple

grouping:tuple从上游到某个下游多个并发task的分组方式

          --shuffleGrouping:随机发给某个下游task

 --fieldsGrouping:按照某几个字段做hash取模,发给对应task

 --allGrouping:发给下游全部task

Topology:一个应用的spout,bolt,grouping组合


Storm原理和架构

nimbus:集群的master,负责管理supervisor、调度topology

supervisor:负责运行topology的worker

worker:负责实际的计算和网络通信

zookeeper:负责存储以上模块的状态,做到高可用。


work是进程,是分配资源的单位,一个worker可以有多个executor,executor是线程,是处理的单位

executor执行spout.nextTuple()或bolt.execute(),调用emit生成新的tuple,放到executor的transfer queue

executor transfer thread 把自己transfer queue里面的tuple放到worker transfer queue

worker transfer thread 把transer queue里面的tuple发送到远程的worker

worker receive thread  分别从网络收数据,把tuple放到对应executor的receive queue

executor receive thread 从自己的reveive queue取出tuple,调用bolt.execute()


storm实战

启动drpc: bin/storm drpc

启动logviewr: bin/storm viewer


JavaAPI

-spout 

  nextTuple() 回调函数,循环触发

  ack(id)     回调函数,消息成功处理时触发

  fail(id)    回调函数,消息超时时触发

-bolt

  execute(Tuple input) 回调函数,数据触发

  collector.emit(tuple):通过collector向下游发送tuple

  collector.ack(tuple):通过collector确认已经成功处理输入tuple


不一定要用java,有shellBolt

DAG图:无回路有向图(Directed Acyclic Graph)


参考:http://www.chinahadoop.cn/course/57/learn#lesson/643

© 著作权归作者所有

月下独酌100
粉丝 26
博文 220
码字总数 56475
作品 0
浦东
高级程序员
私信 提问
Apache Storm简介及安装部署

Apache Storm是一个分布式的、可靠的、容错的实时数据流处理框架。它与Spark Streaming的最大区别在于它是逐个处理流式数据事件,而Spark Streaming是微批次处理,因此,它比Spark Streaming...

风火数据
2018/07/20
0
0
Apache Storm 1.2.3 发布,分布式实时计算

Apache Storm 1.2.3 发布了,更新内容如下: 新特性 [STORM-3233] - zookeeper 客户端升级到最新版本 (3.4.13) 改进 [STORM-3077] - Disruptor 升级至 3.3.11 [STORM-3083] - HikariCP 升级至...

xplanet
2019/07/20
868
0
Apache Storm 0.9.7 发布,分布式实时计算

Apache Storm 0.9.7 发布了,Apache Storm 的前身是 Twitter Storm 平台,目前已经归于 Apache 基金会管辖。 Apache Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像...

开源中国股侠
2016/09/08
814
1
Apache Storm 2.0.0 发布,基于 Java ​​​​​​​的新架构

Apache Storm 2.0.0 发布了,距离它上次更新已过去一年,新版本在性能、新功能和与外部系统的集成方面进行了重大改进,下面是一些主要功能及改进: 用 Java 实现的新架构 在之前的版本中,S...

xplanet
2019/06/03
3.1K
5
Apache Slider + Storm

Apache Slider + Storm 系统环境 安装如下组件,部署可用环境 JDK 1.7.0_79 Apache Zookeeper 3.4.* Apache Zookeeper Apache Hadoop 2.6.* Apache Hadoop Apache Storm 0.9.4 Apache Storm......

Yulong_
2016/09/21
504
0

没有更多内容

加载失败,请刷新页面

加载更多

ZhaoWei-2020-01-18

Redis官方文档 简介 Redis是开源的(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如 字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半...

SuSheePark
20分钟前
11
0
替换字符串C#中的换行符

如何在C#中替换字符串中的换行符? #1楼 由于新行可以用\\n , \\r和\\r\\n分隔,因此我们首先将\\r和\\r\\n替换为\\n ,然后才拆分数据字符串。 以下几行应转到parseCSV方法: function p...

javail
21分钟前
6
0
快递物流上门取件api接口对接指南(中通圆通申通韵达百世)

1.常用快递API 支持顺丰、EMS、申通、圆通、韵达、汇通、中通、天天、德邦、全峰等主流快递公司。 上门取件,是电商平台为寄件用户提供的通过一键下单到快递员,并在2小时上门取件的寄件服务...

程序的小猿
25分钟前
6
0
WebFlux系列(十一)WebClient 日志

#Java#Spring#WebClient#WebFlux#log#日志# WebClient 日志 视频讲解 : https://www.bilibili.com/video/av83627944/ WebfluxConsumerApplication.java package com.example.webfluxconsumer......

潘文海
28分钟前
6
0
使用LINQ来获取一个List <>中的项目,而不是另一个List <>中的项目

我会假设有一个简单的LINQ查询可以做到这一点,但我不确定该如何做。 给出这段代码: class Program{ static void Main(string[] args) { List<Person> peopleList1 = new...

技术盛宴
37分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部