zoukankan      html  css  js  c++  java
  • JStorm—实时流式计算框架入门介绍

    JStorm介绍

      JStorm是参考storm基于Java语言重写的实时流式计算系统框架,做了很多改进。如解决了之前的Storm nimbus节点的单点问题。
      JStorm类似于Hadoop MapReduce系统,用户按照指定的接口去实现一个任务,任务提交给JStorm进行运行,且这种运行是不间断的,因为如果期间有worker发生故障,调度器会分配一个新的worker去替换这个故障worker。
      从应用的角度来看,JStorm是一种分布式应用;从系统框架层面来看,JStorm又是一种类似于Hadoop MapReduce的调度系统;从数据层面来看,JStorm又是一种流式的实时计算方案。

    JStorm优势

    1. 易开发性: JStomr接口简易,只需按照Spout、Bolt及Topology编程规范进行应用开发即可;
    2. 扩展性:可以线性的扩展性能,配置并发数即可;
    3. 容错性:出现故障worker时,调度器会分配一个新的worker去代替;
    4. 数据精准性:JStorm内置ACK机制,确保数据不丢失。还可以采用事务机制确保进一步的精准度;
    5. 实时性:JStorm不间断运行任务,且实时计算。

    JStorm应用场景

    1. 实时计算:可实时数据统计,实时监控;
    2. 消息转移:流处理完消息后,可以定向的将结果存储到其他消息中间件中;
    3. rpc请求:提交任务就是一次rpc请求过程;
      典型的场景:用于日志分析,rpc请求提交任务,从收集的日志中,统计出特定的数据结果,并将统计后的结果持久化到外部存储中,这是一种信息流处理方式,可聚合,可分析。

    JStorm架构

    在这里插入图片描述

    组件介绍

    • UI:JStorm web界面。
    • Nimbus:调度者,是主控制节点,主要功能为提交任务、分配集群任务、集群监控等。
    • Supervisor:负责接收Nimbus分配的任务,管理自己的所属Worker进程,supervisor节点是整个集群中实际运行的topology节点。
    • Zookeeper:分布式应用,主要功能包括集群协调、公有数据的存放(如心跳信息、集群的状态和配置信息),Nimbus将分配给Supervisor的任务是写在zk中的,Nimbus是基于zk对整个集群进行调度,所以我们也可以说JStorm是依赖于zk的分布式调度系统。

    任务进程和线程

    • Worker:运行具体处理组件逻辑的进程;
    • Task:每个Worker进程中包含多个Task线程,提交的topology任务内包含多个组件(spout和bolt),每个组件依据其并行度配置会分配到相应数量的Task任务,每个Task任务运行在各自的Task线程中。
  • 相关阅读:
    fmri资源站点
    spm教程
    linux下ntfs硬盘的加载
    Unix网络编程代码 第13章 守护进程和inetd超级服务器
    APUE16章的运行示例16-14
    Linux守护进程详解(init.d和xinetd)
    centos安装g++
    linux下daemon守护进程的实现(以nginx代码为例)
    Linux进程学习(孤儿进程和守护进程)
    Linux之TCPIP内核参数优化
  • 原文地址:https://www.cnblogs.com/Andya/p/12532538.html
Copyright © 2011-2022 走看看