zoukankan      html  css  js  c++  java
  • 大数据技术之Stome 概念


    Storm 是一个分布式的 ,容错的实时计算系统

    Storm 实时 低延迟 ,主要有两个原因 :

    1 storm 进程是常驻内存的,没有hadoop 里面的不断的起停

    2 storm 的数据是不经过磁盘的,都是在内存里面的,处理完成就没有了,数据的交换经过网络,没有磁盘IO


    Storm 和hadoop的区别 :

    数据来源不同,hadoop是hdfs 上某个文件夹下可能是上TB的数据,storm 是实时的新增的一笔数据

    处理过程不同,hadoop是分map 和reduce 阶段额,storm 是由用户定义的处理流程,流程中包含多个步骤,每个步骤可以是数据源spout 或处理逻辑 bolt

    是否结束,hadoop 最后是要结束的,storm是没有结束状态,到最后一步时,就停滞,等有新数据进入时再唤醒程序

    处理速度不同,hadoop 是以处理hdfs 上大数据量为目的的,速度慢,storm是只要处理实时的新增的某一笔内存中的数据即可,速度极快

    适用场景不同,hadoop 是以批处理用的,不讲时效性,处理一次就提交一个job storm 处理一段时间内新增的数据,有时效性

    与mq 相比,hadoop 没有可比性,storm 可以看作是n 个步骤,每个步骤处理完就向下一个mq 发送消息,监听这个mq 的消费者继续处理


    Storm 架构

    Nimbus   集群管理,接受jar包 ,调度topology

    nimbus <---> zk<----> slave(supervisor)

    nimbus 处理topology submit kill rebalance 等请求

    Supervisor  起停worker

    监控worker ,把自己的情况汇报给zk

    每台机器起一个supervisor 进程

    worker   一个jvm进程资源分配单位  ,可以启动多个executor

    每个机器supervisor启动多个worker,默认 4 个

    executor   干活的奴隶 ,线程

    executor 创建 spout bolt 对象 执行spout bolt 里面的nexttuple()  execute()

    task

    zookeeper

    完全分布规划  (zk 服务器 3 台,一台nimbus,N台 supervisor服务器)

    storm 的核心配置是 conf/storm.yaml

    storm.zookeeper.servers:
     - "spark001"
     - "spark002"
     - "spark003"
    nimbus.host: "spark001"

    storm 的ui 默认端口是 8080 ?????

    编程模型,

    DAG  Spout  Bolt

    Storm  启动

    首先启动zookeeper

    依次启动nimbus ,ui supervisor ,logviewer

    提交topology

    ./bin/storm jar examples/storm-starter/storm-starter-topoloies-0.98.0.jar storm.starter.WordCountTopology wordcount































  • 相关阅读:
    spring查看生成的cglib代理类源码详解
    java-jdk动态代理生成的代理类源码
    约瑟夫斯问题-java版数组解法和链表解法
    HashMap源码解析(简单易懂)
    windows云服务器发布项目
    java学习
    TTL macro登陆linux服务器
    c#笔记
    C#笔记
    git merge
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501489.html
Copyright © 2011-2022 走看看