zoukankan      html  css  js  c++  java
  • 常见分布式计算框架特点

    Hadoop

    Hadoop在使用原理上基本上遵照了MapReduce这种一种模式进行项目的实际开发与交互。将一个个任务分解成映射与合并两种方式。然而通过映射进行分类与简化,从而产生部分归并结果,然后对同类结果进行归并计算;

    因为Hadoop的中间结果须要依托于hdfs,从而须要经历硬盘及网络io的过程所以在实时性方面表现稍差;

    Hadoop主要处理hdfs上的文本文件。而文本文件内容本身也是半结构化的。

    之前的资源调度就是靠当中的master,之后hadoop2.0之后引入yarn进行资源的统一管理。

    Spark

    Spark的原理是将任务进行分解。而且在每一步任务上进行对应的操作处理,同一时候依据操作处理顺序构建DAG图,从而应用DAG引擎进行相关操作。

    因为Spark在进行处理时主要使用内存所以基本能够做到实时性。同一时候,在进行DAG引擎优化方面对速度也有一定程度提升;

    Spark本身是通过DAGSchedulerTaskScheduler实现任务调度以及计算节点切换,如今mesosyarn都对spark进行了一定程度的支持;

    Spark的数据模型使用RDD这样的弹性的存储,而且基于该数据模型构建了对应的数据依赖,从而实现一定的容错机制。

    Spark基本上都执行在内存中,能够使用yarn或者mesos进行资源的统一管理。然后在上面进行spark的相关任务调度;

    Storm

    Storm是基于消息源(spout)获取数据发送信息,而且将信息发送到bolt形成对应的tuple,之后在此基础上继续构建数据的处理规则。处理规则须要觉得变成实现。

    Storm本身是流式数据处理,所以在实现实时性方面有一定的优势;

    Storm的数据模型没有体现依赖关系。没有进行特别的存储结构设计,同一时候在数据模型处理方面只进行结构设计而没有进行优化。

    资源调度以及使用方面直接依照用户的i自己定义方式进行,须要用户编写大量的流程控制问题,同一时候没有在资源啊隔离放main做些谢智导致可能出现局部任务影响全局的问题。

    LinkedIn Samza

    领英出品,主要结合kafka的设计思想将数据进行分块,同一时候保证数据的局部有序性,而任务调度方面进行简单操作后进行输入与输出。

    进行实时数据流处理。而且综合了Kafka这种消息队列;

    通过类似于Kafka的数据结构。实现消息的分区、局部有序以及消息的重读机制,同一时候配合持久化方法可实现滑动窗体;

    资源的管理主要借助于Yarn,利用消息队列的方式显现消息处理,同一时候通过备份方式显示数据局部容错;

    Yahoo Apache S4

    Yahoo出品。与Storm比較类似,基于每一个节点处理不同的功能,相同是组成了一个DAG图去描写叙述数据处理工作。

    在雅虎内部使用。完毕每秒数以千计的搜索查询。

    以事件没基础进行设计,将每一次数据当成是一个事件来处理

    使用ZooKeeper进行分布式数据的管理。在内部实现了负载均衡、容错、分发、路由等功能;

  • 相关阅读:
    domain logic approaches
    远程连接mysql提示:1251-client does not support authentication protocol requested by server
    Navicat远程连接mysql时,报错误“Can't connect to MySQL server on 'ip'(10038)”的解决方法
    XShell连接不了(ubunt14.04)虚拟机Could not connect to ‘192.168.1.105’ (port 22): Connection failed
    Ubuntu20.04 安装和卸载MySQL8
    linux系统(Ubuntu)之合上笔记本盖但不断网
    Ubuntu20.04 FTP服务器的搭建
    Ubuntu20.04安装SqlServer2019教程-简洁版
    Linux更改主机名的三种方法
    ubuntu grub引导win10
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5116388.html
Copyright © 2011-2022 走看看