Storm入门,看这篇就够了

Srorm 简介

1.1 Storm是实时的数据流,Hadoop是批量离线数据

起源背景

  • Twitter 开源的一个类似于Hadoop的实时数据处理框架
  • Storm是由Nathan Marz 在BackType公司【做社交数据分析,数据量大】工作中实现的,这家公司后来被Twitter收购。

Ps:·Hadoop分布式存储和分布式计算两个难题全部解决了。但是缺点就是不能实时处理数据,Storm的作者就像写一个这样实时数据处理场景的框架出来

1.2 Storm应用场景【实时处理数据】
  • 推荐系统:实时推荐,根据下单或加入购物车等操作
  • 网站统计:实时销量,流量统计
  • 监控预警系统,金融系统
1.3Storm特性
  • 扩展性强,当计算能力不足时,可以进行横向扩展机器
  • 保证数据不丢失,且数据可以消费一次或多次
  • 容错性好,消息处理过程出现异常,会进行重试
  • 语言无关性:storm程序可以使用各种语言进行编写

Storm原理

2.1拓展:大数据框架都有哪些架构类型?

主从架构:简单高效,单主节点存在单点问题
HDFS\YARN\Storm\Hbase\Spark\Flink

对称架构:复杂,效率较低,无单点问题,更加可靠
Zookeeper\Kafka [会进行主节点的选举]

Storm的主从架构

  • Nimbus 主节点
  • Sipervisor 从节点

Nimbus—zookeeper–supervisor

Storm组件:Nimbus

  • 接收客户端的topo代码,拆分成多个task,将task信息存入zk,并将task分配给Supervisor,将映射关系存入ZK,并进行故障检测

  • 类比:部门经理将需求拆分为 多个任务(每个任务有多个模块) 将这些任务写入项目文档中去,,并将每个任务与每一程序员进行对应

Storm组件:Supervisor

  • 从Nimbus目录读取代码,从zk上读取Nimbus分配的task
  • 启动工作进程Worker
  • 监控每一个工作进程Worker

Storm 组件:Worker

  • 从zk上读取分配的task,并计算出task需要给哪些task发信息
  • 启动一个或多个Execucor线程执行任务Task

Storm组件:Zookeeper

  • Nimbus与Supervisor进行通信(分配任务与心跳)
  • Supervisor与Worker进行通信(分配任务和心跳)
  • Nimbus高可用(HA机制)

动手实践

  • Zookeeper简介与集群配置【Storm的各个组件间是通过这个组件进行通信】
  • Zookeeper 的核心,单机和集群的配置方法
  • Storm的单机和集群环境的搭建

Storm的安装配置

单机环境的安装配置
下载啊storm.apache.org 或CDH5 1.1.0 ,1.2.1等版本
解压 tar –zxvf storm.tar.gz –C /opt/module

Storm的启动是需要依赖于zookeeper服务的
在这之前,先使用单个zk服务(单节点)

Storm解压后的目录
bin 包含

  • storm 核心脚本,可以通过这个脚本进行启动
  • Storm.py 是一个python脚本

Conf 包含

  • Storm.yaml最核心的配置文件
  • storm.zookeeper.servers
  • nimbus.seeds
  • drpc.servers
    暂时不做任何修改

启动主节点
bin/storm nimbus &
启动从节点
bin/storm supervisor &
启动UI
bin/storm ui &
启动日志
bin/storm logviewer &

ps:nohup java –jar hh.jar &
nohup + & 客户端和虚拟机是不需要保持连接的,即当前输入的命令界面是可以进行关闭的

Storm性能调优
为了解决数据不一致的问题,我们先把zookeeper的data目录下先删除,保持一致
每个机器上执行
rm –rf $ZK_HOME/data
mkdir $ZK_HOME/data
vim $ZK_HOME/data/myid 写入相应的 1,2,3等 :wq

每个机器上启动zookeeper
bin/zkServer.sh start

开始配置storm的单机环境为集群环境配置

Vim #STORM_HOME/conf/storm.yaml
storm.zookeeper.servers:
-	“192.168.1.1”
-	“192.168.1.2”
-	“192.168.1.3”
Nimbus.seeds: [“192.168.1.1”,”192.168.1.2”]

就简单做这样的操作就 可以了
接着 拷贝storm文件到其余的机器上面去

就可以启动storm了

启动主节点【第一台机器上】
Nohup bin/storm nimbus &
启动从节点【第二台机器上】
Nohup bin/storm supervisor &
启动UI
可以在第一台 也可以在第二台上面
nohup bin/storm ui
WebUI查看:
192.168.1.2:8080/index.html

---------这里可以做节点故障转义的实验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值