hadoop各个端口_Hadoop分布式实时分析处理系统——Storm

#Hadoop# #Storm# #大数据分析# #大数据#

1 Storm概述

Storm最初由Nathan Marz和BackType的团队创建。BackType是一家社交分析公司。后来,Storm被收购,并通过Twitter开源。在短时间内,Apache Storm成为分布式实时处理系统的标准,允许您处理大量的数据,类似于Hadoop。Apache Storm是用Java和Clojure写的,是实时分析的领导者。

1.1 功能、作用

扩展性强,当计算能力不足时,可以进行横向扩展机器

保证数据不丢失,且数据可以消费一次或多次

容错性好,消息处理过程出现异常,会进行重试

语言无关性:storm程序可以使用各种语言进行编写

1.2 应用场景

推荐系统:实时推荐,根据下单或加入购物车等操作

网站统计:实时销量,流量统计

监控预警系统,金融系统

1.3 架构

基于ZK的分布式数据流处理系统。

适用于实时性高,吞吐量低的实时分析系统。

使用Nimbus(协议,主控点)管理集群,各计算节点使用supervisor管理worker。

数据流Stream从Spout(消息生产者)生产元组序列,发送给Bolt(消息处理者)进行处理(可以继续发送给其它Bolt)。

33115a84f69472f8fd2bebe77e555a20.png

Nimbus:负责资源分配和任务调度。

Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。

Worker:运行具体处理组件逻辑的进程。

5956535cf2776fcedbcea89ea953ca21.png

Topology:storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。

Spout:在一个topology中产生源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。Spout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用此函数,用户只要在其中生成源数据即可。

Bolt:在一个topology中接受数据然后执行处理的组件。Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。Bolt是一个被动的角色,其接口中有个execute(Tuple input)函数,在接受到消息后会调用此函数,用户可以在其中执行自己想要的操作。

Tuple:一次消息传递的基本单元。本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个value list.

Stream:源源不断传递的tuple就组成了stream。

d2330d108c6f10aa9add058ceec61a7c.png
b1a56f53efbe1029d85ebacf2a8e4ce6.png

2 环境设置

注意:需要ZooKeeper支持。

1) Apache Zookeeper是运行Storm集群的必备工具。先启动它。由于Zookeeper“快速失败”,最好始终重启它。

$ docker run -d --restart always --name some-zookeeper zookeeper

2) Nimbus守护进程必须与Zookeeper连接。它也是一个“快速失败”的系统。

$ docker run -d --restart always --name some-nimbus --link some-zookeeper:zookeeper storm storm nimbus

3) 最后启动一个Supervisor节点。它将与Nimbus和Zookeeper交谈。

$ docker run -d --restart always --name supervisor --link some-zookeeper:zookeeper --link some-nimbus:nimbus storm storm supervisor

4) 向群集提交拓扑。

$ docker run --link some-nimbus:nimbus -it --rm -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology.jar org.apache.storm.starter.WordCountTopology topology

5) 启动Storm Web UI:默认监听8080端口

$ docker run -d -p 8080:8080 --restart always --name ui --link some-nimbus:nimbus storm storm ui

2.2 下载安装

官网下载:

修改配置文件:conf/storm.yaml(只能使用空格缩进)

storm.zookeeper.servers:

- "localhost"

- "host2"

storm.local.dir: “/path/to/storm/data(any path)”

nimbus.host: "localhost"

supervisor.slots.ports:

- 6700

- 6701

- 6702

- 6703

2.3 启动验证

启动主节点:nimbus

b2afb7a2a6454ff1ed1dc5e73de68f55.png

启动从节点:supervisor

启动web端:ui

53db64d5a8e2b6827330bf4be3daccd1.png

3 应用

编写Storm程序的jar包

在maven中增加storm的依赖。

在Storm服务器上提交jar应用

bin/storm jar 类名

99b47d0a07d62a0b1f66615d849fb21b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值