BigData-19:Storm基础

Apache Storm是一款开源的分布式实时计算系统,能够处理无限数据流,实现与Hadoop批处理相媲美的实时处理能力。Storm支持多种编程语言,具备高吞吐量、可扩展性、容错性及易用性。其核心组件包括Spout、Bolt和Topology,适用于实时分析、在线机器学习等多种场景。

Storm概述

网址:http://storm.apache.org/
Apache Storm是一个免费的开源分布式实时计算系统。Storm可以轻松可靠地处理无限数据流,实
现Hadoop对批处理所做的实时处理。Storm非常简单,可以与任何编程语言一起使用,并且使用起
来很有趣!
Storm有许多用例:实时分析,在线机器学习,连续计算,分布式RPC,ETL等。风暴很快:一个基
准测试表示每个节点每秒处理超过一百万个元组。它具有可扩展性,容错性,可确保您的数据得到处
理,并且易于设置和操作。
Storm集成了您已经使用的排队和数据库技术。Storm拓扑消耗数据流并以任意复杂的方式处理这些
流,然后在计算的每个阶段之间重新划分流。阅读教程中的更多内容。

离线计算是什么?
批量获取数据、批量的传输数据、批量的存储数据、周期性计算数据、数据可视化
flume批量获取数据、sqoop批量传输、hdfs/hive/hbase批量存储、mr/hive计算数据、BI

实时计算是什么?
数据实时产生、数据实时传输、数据实时计算、实时展示
flume实时获取数据、
kafka实时数据存储、
Storm/JStorm实时计算、
实时展示(dataV/quickBI)

Storm与Hadoop
hadoop storm
角色:JobTracker Nimbus
TaskTracker Supervisor
Child Worker
应用名称: Job Topology
编程接口:Mapper/Reducer Spout/Bolt
storm编程模型
tuple:元祖
是消息传输的基本单元。
Spout:水龙头
storm的核心抽象。拓扑的流的来源。Spout通常从外部数据源读取数据。转换为t敺内部的源数
据。

主要方法:

nextTuple() -》 发出一个新的元祖到拓扑。
ack()
fail()
Bolt:转接头

Bolt是对流的处理节点。Bolt作用:过滤、业务、连接运算。
Topology:拓扑
是一个实时的应用程序。
永远运行除非被杀死。
Spout到Bolt是一个连接流…
wordcount
spark->wordcount
storm流式计算
hadoop与storm兼容性
spark-core
spark-sql离线计算
spark-streaming流式计算
一个团队开发
没有兼容性问题
spark团队:我要做一栈式开发平台!
但凡涉及到大数据计算 我都能搞定!
spark替代了mapreduce
spark没有底层存储
依赖hdfs
hdfs/mr…
完善整个生态圈系统!
mapreduce思想、编程 、sqoop->mr hive->mr hbasemr
dfs/mapreduce/bigtable
java/scala…
Storm集群安装部署
1)准备工作
zk01 zk02 zk03
storm01 storm02 storm03
2)下载安装包
http://storm.apache.org/downloads.html
3)上传
4)解压
5)修改配置文件
$ vi storm.yaml

设置Zookeeper的主机名称

storm.zookeeper.servers:

  • “hd09-01”
  • “hd09-02”
  • “hd09-03”

设置主节点的主机名称

nimbus.seeds: ["hd09-01"]

设置Storm的数据存储路径

storm.local.dir: "/root/hd/storm/data"

设置Worker的端口号

supervisor.slots.ports:`
- 6700
- 6701
- 6702
- 6703

6)启动nimbus
$ storm nimbus &
7) 启动supervisor
$ storm supervisor &
8)启动ui界面
$ storm ui
Storm命令行操作
1)查看命令帮助
storm help
2)查看版本
storm version
3)运行storm程序
storm jar [/路径/.jar][全类名][拓扑名称]
4)查看当前正在运行拓扑及其状态
storm list
5)终止拓扑程序
storm kill [拓扑名称]
6)激活拓扑程序
storm activate [拓扑名称]
7)禁止拓扑程序
storm deactivate [拓扑名称]
下半节课:storm-wordcount 实时版
分组策略
1)Fields Grouping
按照字段分组。相同字段发送到一个task中。
2)shuffle Grouping
随机分组。轮询。平均分配。随机分发tuple,保证每个bolt中的tuple数量相同。
3)Non Grouping
不分组
采用这种策略每个bolt中接收的单词不同。
4)All Grouping
广播发送
5)Global Grouping
全局分组
分配给task id值最小的
根据线程id判断,只分噢诶给线程id最小的
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phial03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值