Storm和hadoop对比及storm组件

storm hadoop
实时流处理 批处理
无状态 有状态
使用zk协同的主从架构 无主从zk架构
每秒处理数万消息 HDFS,MR 数分钟,数小时
不会主动停止 终于完成的时候

storm优点: 跨语言,可伸缩,低延迟,秒级 容错

核心概念:

       Tuple 主要数据结构,有序元素的列表
        stream tuple的序列
        spouts 数据流源头,可以读取kafka列队消息,可以自定义
        bolts 转接头 逻辑处理单元,spout的数据传递个bolt,bolt计算,完成后产生新的数据

Topology:spouts+bolts连接在一起形成一个top,形成有向图,定点是计算,边是数据流

Task:每个spouts和bolts都是一个task
storm架构:
Nimbus: master节点 核心组件,运行top,分析top并收集运行task,分发task给supervisor靠zk去关注top状态
supervisor: 每个supervisor 有n个worker进程,负责代理task给worker
worker最终是执行线程并运行task,storm 使用内部消息系统在nimbus和supervisor之间通信
worker:执行特定的task,worker本身不执行任务,而是产生executors 让executors执行task
executor:本质上是work产生的一个线程而已,executor 运行task都属于同一个spout或者bolt
task:执行实际上的任务处理,或者是spout或者是bolt

集群环境搭建 :

注意:以上配置,凡是有冒号的地方,冒号后都要有个空格。


  storm/conf/storm.yaml
  storm.zookeeper.servers:
            - "计算机名或者IP"
            - "计算机名或者IP"
 nimbus.seeds :  ["计算机名或者IP"]
 storm.local.dir:  "/home/centos/storm"
# 配置工作节点上的进程端口。你配置一个端口,意味着工作节点上启动一个worker
supervisor.slots.ports:
            - 6700
            - 6701
            - 6702
            - 6703

启动集群:

bin>./storm ui,
bin>./storm nimbus
bin >./supervisor

你可能感兴趣的:(Storm和hadoop对比及storm组件)