Storm-知识点汇总

    xiaoxiao2021-12-14  20

    Storm是一个免费开源、分布式、高容错的实时计算系统。Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。Storm的部署管理非常简单,而且,在同类的流式计算工具,Storm的性能也是非常出众的。     Storm主要分为两种组件Nimbus和Supervisor。这两种组件都是快速失败的,没有状态。任务状态和心跳信息等都保存在Zookeeper上的,提交的代码资源都在本地机器的硬盘上。 Nimbus负责在集群里面发送代码,分配工作给机器,并且监控状态。全局只有一个。 Supervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程Worker。每一个要运行Storm的机器上都要部署一个,并且,按照机器的配置设定上面分配的槽位数。 Zookeeper是Storm重点依赖的外部资源。Nimbus和Supervisor甚至实际运行的Worker都是把心跳保存在Zookeeper上的。Nimbus也是根据Zookeerper上的心跳和任务运行状况,进行调度和任务分配的。 Storm提交运行的程序称为Topology。 Topology处理的最小的消息单位是一个Tuple,也就是一个任意对象的数组。 Topology由Spout和Bolt构成。Spout是发出Tuple的结点。Bolt可以随意订阅某个Spout或者Bolt发出的Tuple。Spout和Bolt都统称为component。 下图是一个Topology设计的逻辑图的例子。 storm的每一个supervisor节点内部运行多个work进程,每个work进程内部有多个executor线程,每个线程内部还可以跑一个类的多个task实例 Storma集群的安装及配置 1、安装一个zookeeper集群 2、上传storm的安装包,解压(storm是clojur语言编写的 --->基于JVM的语言   scala也是基于JVM的语言) 3、修改配置文件/home/hadoop-node-01/apache-storm-0.9.2-incubating/conf/storm.yaml #所使用的zookeeper集群主机 storm.zookeeper.servers:     - "hadoop-01-server"     - "hadoop-02-server"     - "hadoop-03-server" #nimbus所在的主机名 nimbus.host: "hadoop-01-server" #此处配置的是supervisor节点上work进程的端口号,可配可不配,若不配则默认就是前4个端口 supervisor.slots.ports     -6701 -6702 -6703 -6704 -6705 -6706 4、将配置好的storm复制到其他两台机器上 scp /home/hadoop-node-01/apache-storm-0.9.2-incubating hadoop-02-server:/home/hadoop-node-01/ scp /home/hadoop-node-01/apache-storm-0.9.2-incubating hadoop-03-server:/home/hadoop-node-01/ storm的集群的启动(storm可以运行在yarn集群上,也可以单独运行。) 1.启动zookeeper storm是依赖于zookeeper,所以需要选启动zookeeper。 2.启动storm 在nimbus主机上 bin/storm nimbus 1>/dev/null 2>&1 & bin/storm ui 1>/dev/null 2>&1 & 在supervisor主机上 bin/storm supervisor 1>/dev/null 2>&1 & (1>/dev/null 2>&1 & 的意思是把该服务启动为后台进程) storm的深入学习: storm on  YARN  分布式共享锁的实现----zookeeper 事务topology的实现机制及开发模式(难度较大的一块) 在具体场景中的跟其他框架的整合(flume<数据收集>/activeMQ/kafka(分布式的消息队列系统)       /redis/hbase/mysql cluster)
    转载请注明原文地址: https://ju.6miu.com/read-962985.html

    最新回复(0)