大数据计算模式
PRAM PRAM模型,即并行随机存取机,也称之为SIMD-SM(共享存储的单指令流多数据流)模型,是一种应用于并行计算抽象模型。PRAM模型是顺序的冯·诺伊曼存储程序模型的自然扩展,由若干具有本地存储器的处理器和一个具有无限容量的共享存储器组成,处理器由公共的时钟进行控制,以同步方式运行。优点: RPAM结构简单,简便易行; PRAM能够表达大多数并行算法 PRAM让算法设计变得简单;让并行算法更加容易移植到不同的并行系统上; 可以按需加入一些诸如同步和通信等功能。缺点: 1)PRAM是一个同步模型,其同步过程很费时的; 2)模型中使用了一个全局共享存储器,且本地存储容量较小,不能很好的体现当前比较多见的分布主存多处理机的性能瓶颈; 3)单一共享存储器的假定,不适合于异步分布存储的MIMD机器; 4)假定每个处理器均可在单位时间内访问任何存储单元,因此要求处理机间通信无延迟、无限带宽和无开销,忽略多个处理器在访问同一存储空间的竞争问题以及处理器读写存储单元带宽有限性等实践中普遍存在的问题,这一假设显然是不现实的; 5)不能很好地描述多线程技术和流水线预取技术,这两种技术当今并行体系结构应用最普遍的技术。BSP BSP(Bulk Synchronous Parallel)模型,由哈佛大学Viliant和牛津大学Bill McColl提出,希望像冯·诺伊曼体系结构那样,架起计算机程序语言和体系结构间的桥梁,故又称作桥模型(Bridge Model)。本质上,BSP模型是分布存储的MIMD计算模型,被认为是最有前途的并行计算模型。 一个BSP计算机由n个处理机/存储器组成,通过通信网络进行互联,。一台BSP并行计算机包含三个部分组成:并行计算模块、通信模块、路障同步模块。logP LogP模型是一种分布存储的、点到点通信的多处理机模型,其中通信网络由4个主要参数来描述: L(Latency) 表示源处理机与目的处理机进行消息(一个或几个字)通信所需要的等待或延迟时间的上限,表示网络中消息的延迟。 o(overhead)表示处理机准备发送或接收每个消息的时间开销(包括操作系统核心开销和网络软件开销),在这段时间里处理不能执行其它操作。 g(gap)表示一台处理机连续两次发送或接收消息时的最小时间间隔,其倒数即微处理机的通信带宽 P(Processor)处理机/存储器模块个数。 LogP模型假定一个周期完成一次局部操作,并定义为一个时间单位,那么,L,o和g都可以表示成处理器周期的整数倍。LogP模型的主要特点有: 1)抓住了网络与处理机之间的性能瓶颈。 2)处理机之间异步工作,并通过处理机间的消息传送来完成同步 3)对多线程技术有一定反映 4)消息延迟不确定,但延迟不大于L 5)LogP模型鼓励编程人员采用一些好的策略 6)可以预估算法的实际运行时间。
LogP模型的不足之处有: 1)对网络中的通信模式描述的不够深入。 2)简单地认为远地读操作相当于两次消息传递,未考虑流水线预取技术、Cache引起的数据不一致性以及Cache命中率对计算的影响。 3)未考虑多线程技术的上下文开销。 4)LogP模型假设用点对点消息路由器进行通信,这增加了编程者考虑路由器上相关通信操作的负担。MapReduce MapReduce是Google公司提出的一种用于大规模数据集(大于1TB)的并行运算的编程模型。执行流程 (1)数据分片 (2)Master分配Map任务 (3)分配了map任务的worker读取和处理相关split的内容 (4)Master协调分配reducer到相应Mapper获取数据,期间称为Shuffle,包括一个按Key排序过程。 (5)Reducer对每个Key相应的Value列表进行读取并处理 (6)Reducer将处理后的文件写入HDFS输出文件优点: 1、移动计算而不是移动数据,避免了额外的网络负载。 2、任务之间相互独立,实现高容错性。 3、理想状态下可线性扩展的,是为便宜的商业机器而设计的计算模型。 4、MapReduce模型结构简单,终端用户至少只需编写Map和Reduce函数。 5、集群扩展代价曲线平坦。缺点: 1、一个中心用于同步各个任务。 2、用MapReduce模型来实现常见的数据库连接操作效率低下。 3、MapReduce集群管理、调试、部署以及日志收集工作困难。 4、单个Master节点有单点故障的可能性。 5、当中间结果必须给保留的时候,作业的管理并不简单。 6、对于集群的参数配置调优需要较多经验。
大数据分析处理平台Impala Impala是CDH(Cloudera Distribution with Apache Hadoop)的一个组件,是一个对大量数据并行处理(MPP-Massively Parallel Processing)的查询引擎。HadoopDB HadoopDB旨在结合MapReduce的可扩展性优势和并行数据库的性能、效率优势,以管理和分析大数据。HadoopDB背后的基本思想是,连接多个单节点数据库系统 (PostgreSQL),使用 Hadoop 作为任务协调者和网络通信层;查询用 SQL 表达,但是其执行是使用 MapReduce 框架跨节点并行化的,以便将单一查询工作尽可能推送到相应的节点数据库中。
HadoopDB的优点: 结合Hive对SQL强大的支持并直接生成map/reduce任务,不需要再手动编写map/reduce程序; 利用关系数据库查数据利用单节点的性能优势; 利用Hadoop所具有的高容错性、高可用性以及对于高通量计算的性能优越性。HadoopDB的缺点有: 如果不想手动编写map/reduce程序,则只能查询的SQL语句的数据来源不能来自多张表,原因是因为他目前只相当对一个数据库的多个分块并行查询,所以不能做到多分块的数据关系处理。当然为了实现多表join,可手动改造InputFormat以实现; 其数据预处理代价过高:数据需要进行两次分解和一次数据库加载操作后才能使用; 将查询推向数据库层只是少数情况,大多数情况下,查询仍由Hive 完成. 维护代价过高.不仅要维护Hadoop系统,还要维护每个数据库节点; 目前尚不支持数据的动态划分,需要手工一次划分好。
2020-10-21
最新推荐文章于 2021-10-27 20:40:13 发布