《分布式计算、云计算与大数据》总结

第一章、分布式计算概述

1、分布式计算概述
分布式计算是计算机科学研究的重要内容,主要研究对象是由若干个通过网络联合在一起的计算机组成的硬件系统,这些计算机把需要非常大的计算能力的项目分成许多小部分,然后把小部分分配给多个计算机去处理,最后把计算结果整合在一起就是最终的计算结果,本质是计算机基于网络分而治之的计算方式。
2、分布式的优点:
超大规模 虚拟化 高可靠性 通用性 可伸缩性 按需服务 极其廉价 容错性
3、分布式缺点:
安全性低 多点故障
4、分布式相关计算形式
1.单机计算
单机计算是最简单的计算形式,即利用单台计算机(如PC)进行计算,此时计算机不与任何网络互连,因而只能使用本计算机系统内可被即时访问的所有资源。在最基本的单用户单机计算模式中,一台计算机在任何时刻只能被一个用户使用。用户在该系统上执行应用程序,不能访问其他计算机上的任何资源。在PC上使用的诸如文字处理程序或电子表格处理程序等应用就是单用户单机计算的计算形式。
2.并行计算
并行计算(或称并行运算)是相对于串行计算的概念(如图1-2所示),最早出现于20世纪六七十年代,指在并行计算机上所做的计算,即采用多个处理器来执行单个指令。通常并行计算是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。
《分布式计算、云计算与大数据》总结

3.网络计算

网络计算是一个比较宽泛的概念,随着计算机网络而出现。网络技术的发展,在不同的时代有不同的内涵。例如,有时网络计算指分布式计算,有时指云计算或其他新型计算方式。总之,网络计算的核心思想是,把网络连接起来的各种自治资源和系统组合起来,以实现资源共享、协同工作和联合计算,为各种用户提供基于网络的各类综合性服务。网络计算在很多学科领域发挥了巨大作用,改变了人们的生活方式。

4.网格计算

网格计算是指利用互联网把地理上广泛分布的各种资源(计算、存储、带宽、软件、数据、信息、知识等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等)。网格计算强调资源共享,任何结点都可以请求使用其他结点的资源,任何结点都需要贡献一定资源给其他结点。

网格计算侧重并行的计算集中性需求,并且难以自动扩展。云计算侧重事务性应用、大量的单独的请求,可以实现自动或半自动的扩展。

5.云计算

云计算这个概念最早由Google公司提出。2006年,Google高级工程师克里斯托夫·比希利亚第一次提出“云计算”的想法,随后Google推出了“Google 101计划”,该计划的目的是让高校的学生参与云的开发,为学生、研究人员和企业家提供Google式的无限计算处理能力,这是最早的“云计算”概念
《分布式计算、云计算与大数据》总结

6、分布式计算的核心技术是进程间通信
《分布式计算、云计算与大数据》总结
7、Ipc程序接口原型
Send(发送):该操作由发送进程发起指向接受进程传输数据,操作必须允许发送进程识别接收进程和定义待传数据。
Receive(接收):操作由接收进程发际,只接收发送进程发来的数据操作,必须允许接收进程识别发送进程和定义保存数据的内存空间该内存随后被接收者访问。
Connect(连接):对于面向连接的ipc必须允许在发起发起进程和指定进程建立逻辑连接的操作。
Disconnect(断开连接):对于面向连接的ipc该操作允许通信双方断开先前建立的逻辑连接。
8、死锁和超时
1.死锁:
定义
线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行,其他线程将不能进行。当线程互相持有对方所需要的资源时,会互相等待对方释放资源,如果线程都不主动释放所占有的资源,将产生死锁。
当然死锁的产生是必须要满足一些特定条件的:
1.互斥条件:进程对于所分配到的资源具有排它性,即一个资源只能被一个进程占用,直到被该进程释放
2.请求和保持条件:一个进程因请求被占用资源而发生阻塞时,对已获得的资源保持不放。
3.不剥夺条件:任何一个资源在没被该进程释放之前,任何其他进程都无法对他剥夺占用
4.循环等待条件:当发生死锁时,所等待的进程必定会形成一个环路(类似于死循环),造成永久阻塞。
避免死锁:
在有些情况下死锁是可以避免的。1.加锁顺序2.加锁时限3.死锁检测

第二章、分布式计算范型

1、消息传递范型
消息传递是进程间通信的基本途径。如图2-1所示,在消息传递范型中,表示消息的数据在两个进程(进程A和进程B)间交换:一个是发送者,另一个是接收者。
《分布式计算、云计算与大数据》总结

消息传递是分布式应用的最基本范型。一个进程发送代表请求的消息,该消息被传送到接收者;接收者处理该请求,并发送一条应答消息。随后,该应答消息可能触发下一个请求,并引起下一个应答消息。如此不断反复传递消息,实现两个进程间的数据交换。
消息传递范型所需的基本操作为send和receive。对于面向连接的通信来说,还需要connect操作和disconnect操作。利用该模型提供的抽象,互连进程在彼此之间执行输入操作和输出操作,操作方式类似于文件的输入操作和输出操作。和文件I/O相似,这些操作封装了操作系统层的网络通信细节,因此,程序员可以使用这些操作发送和接收消息,而不必关注操作系统底层的通信细节。
基于该范型的开发工具有Socket应用程序接口(Socket API)和信息传递接口(Message Passing Interface,MPI)等。
利用Socket API接口,可以使不同主机或者同一台计算机上的进程间相互通信,Socket API接口允许应用程序控制和使用网络里的套接字进行消息传递。一般的Socket API都是基于伯克利套接字(Berkeley Socket)标准的。在后面的内容中,我们将使用Java Socket API提供的方法或函数在进程间传递消息。
信息传递接口是一个并行计算的信息传递应用程序接口,包括协议和语义说明,它们指明其如何在各种实现中发挥其特性,常在超级计算机、计算机簇等非共享内存环境程序设计。MPI属于OSI参考模型的第五层或更高,但它的实现可能通过传输层Socket覆盖大部分层,因此,拥有良好的可移植性和速度。大部分的MPI实现由一些API组成,可由Java或C语言等直接调用。
消息传递模式是最基本的传递消息的范型,很多即时通信工具(如QQ等)都是基于该范型的具体应用。

2、客户/服务器范型
客户/服务器范型(简称C/S范型)是网络应用中使用最多的一种分布式计算范型,该模型将非对称角色分配给两个协作进程。其中,服务器进程(server process)扮演服务提供者角色,被动地等待请求的到达;客户进程(client process)向服务器发起请求,并等待服务器响应。
客户/服务器范型的概念,它有效地抽象了网络服务的请求,客户进程发起请求和接收响应。通过为双方分配非对称的角色,即服务器进程监听和接收请求,客户进程发送请求和接收响应。进程间的事件同步也被简化了:服务器进程等待来自客户的请求,客户进程则等待来自服务器的响应。
3、P2P范型
P2P(Peer-to-Peer)范型源于P2P网络(又称为对等计算网络)。P2P网络是无中心服务器,依赖用户群交换的互联网体系。与客户/服务器结构的系统不同,在P2P网络中,每个用户端既是一个结点,又有服务器的功能,任何一个结点无法直接找到其他结点,必须依靠其用户群进行信息交流。
在P2P范型中,各参与进程的地位是平等的,具有相同的性能和责任(因此,称它们为peer)。每个参与者(进程)都可以向另一个参与者发起请求和接收响应。在一个基于P2P范型的分布式应用中,每一个参与的进程往往既承担服务器进程的角色(资源提供者),又承担客户进程的角色(资源请求者)。

4、消息系统范型
消息系统范型或面向对象的中间件(Message-Oriented Middleware,MOM)是在基本的消息传递范型的基础上扩展而来的。在这种范型中,消息系统充当一些相当独立的进程之间的中介。不同的进程以非耦合的方式,通过消息系统异步地交换消息。消息发送者(进程)在发送消息时,将一条消息放入消息系统中,后者接着将该消息转发到与各个接收者(进程)相应的消息接收队列中,一旦消息发送出去,发送者即可执行其他任务了。
消息系统范型可以进一步划分为两种子类型:点对点消息范型(point-to-point message model)和发布/订阅消息范型(public/subscribe message model)。

1.点对点消息范型
在点对点消息范型中,消息系统将来自发送者的一条消息转发到接收者的消息队列中。与基本的消息传递模型不同的是,这种中间件模型提供了消息暂存的功能,从而可以将消息的发送和接收分离。通过中间件消息系统,发送者可将消息存入接收进程的消息队列中。接收进程则从自己的消息队列中提取消息,并加以处理。
如果要在基本的消息传递范型中达到同样的结果,必须借助于线程或者子进程技术。

2.发布/订阅消息范型
在发布/订阅消息范型中,每条消息都与某一主体或事件相关。对某个事件感兴趣的应用程序可以订阅与该事件相关的消息。当订阅者等待的事件发生时,触发该事件的进程将发布一条消息来宣布该事件或主题。中间件消息系统将这条消息分发给该消息的所有订阅者。
发布/订阅消息范型提供了一种用于组播或组通信的强大抽象机制。发布操作使一个进程可以向一组进程组播消息,订阅操作则使一个进程能够监听这样的组播消息。

5、过程调用范型
于基本的网络协议和基本的网络应用程序来说,消息传递范型是适用的。但是,随着应用程序变得越来越复杂,需要为网络编程提供进一步的抽象。最好有一种范型能使开发人员可以像编写在单处理器上运行的传统应用程序一样,编写分布式软件系统。远程过程调用(Remote Procedure Call,RPC)范型就提供了这种抽象。利用这一抽象,可以采用与本地过程调用类似的思想与概念,以进行进程间通信。
远程过程调用涉及两个独立的进程,它们可以分别位于两*立的计算机上。例如,如果进程A希望向另一个进程B发出请求,就可以向进程B发出一个过程调用,同时传递的还有一组参数值。与本地过程调用的情况一样,该远程过程调用也会触发进程B所提供的某一过程中预定义的动作。过程执行完毕后,进程B将返回一个值给进程A。
《分布式计算、云计算与大数据》总结

6、分布式范型
分布式对象范型将面向对象应用到分布式系统中,是面向对象软件开发技术的自然扩展。该范型使应用程序可访问分布于网络上的各个对象。通过调用对象的方法,应用程序可获取对服务的访问。

1.远程方法调用
远程方法调用(Remote Method Invocation,RMI)是面向对象版本的RPC。如图2-9所示,在该范型中,进程可以调用对象方法,而该对象可驻留于某远程主机中。与RPC一样,参数可随方法调用传递,也可提供返回值。

2.对象请求代理
对象请求代理范型由对象请求者(object requestor)、对象提供者(object)和对象请求代理(Object Request Broker,ORB)组成。在对象请求代理范型中,进程向对象请求代理发出请求,对象请求代理将请求转发给能提供预期服务的适当对象。对象代理还可以作为异构对象之间的协调者,允许由不同API实现的对象及运行于不同平台上的对象进行交互。
《分布式计算、云计算与大数据》总结

7、网络服务范型
网络服务范型由服务请求者、服务提供者(对象)和目录服务三者组成。网络服务范型的工作原理为:服务提供者将自身注册到网络上的目录服务器上;当服务请求者(进程)需访问服务时,则在运行时与目录服务器联系;然后,如果请求的服务可用,则目录服务器将向目录服务进程提供一个有关该服务的引用;最后,进程利用该引用来与所需的服务进行交互。

8、移动代理范型
移动代理是一种可移动的程序或对象。如图2-13所示,在移动代理范型中,一个代理从源主机出发,然后根据其自身携带的执行路线,自动地在网上主机间移动。在每一主机上,代理访问所需的资源或服务,并执行必要的任务来完成其使命。
移动代理范型为可移动的程序或对象提供了抽象。这种范型不进行消息互换,而是当程序/对象在各个参与结点间移动时,携带并传递数据。支持移动代理范型的商业软件包有Concordia系统和IBM公司的Aglet系统。
《分布式计算、云计算与大数据》总结

9、云服务范型
《分布式计算、云计算与大数据》总结

第五章Web原理与开发

1、HTTP协议
1.www
万维网WWW是World Wide Web的简称, WWW服务器通过超文本标记语言(HTML)把信息组织成为图文并茂的超文本,利用链接从一个站点跳到另个站点。这样一来彻底摆脱了以前查询工具只能按特定路径一步步地查找信息的限制
2.Tcp/ip协议
TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。其中HTTP为应用层重要协议之一。

2、HTTP协议原理
HTTP超文本传输协议,用与传送www方式的数据是互联网上应用最为广泛的一种网络协议,HTTP是面向连接无状态的请求应答协议也是客户端和服务端请求应答的标准。

3、HTTP通信过程
在一次完整的HTTP通信过程中,Web 浏览器与Web服务器之间将完成下列7个步骤:
1)建立TCP连接。在HTTP工作开始之前,Web浏览器首先通过网络与Web服务器建立连接。该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议,因此Internet又称为TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此首先需要建立TCP连接。
2)Web浏览器向Web服务器发送请求命令。一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如
GET/sample/hello.jsp HTTP/1.1
3) Web浏览器发送请求头信息。浏览器发送其请求命令之后,还要以头信息的形式问Web服务器发送一些信息, 之后刘览器发送一一个空白行, 通知服务器它已经结束了该头信息的发送。
4) Web服务器应答。客户机向服务器发出请求后,服务器向客户机回送应答,如HTTP/1.1 200OK,应答的第一部分是协议的版本号和应答状态码。
5) Web服务器发送应答头信息。正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应客向用户发送关于它自己的数据及被请求的文档。
6) Web服务器向浏览器发送数据。Web 服务器向浏览器发送头信息后,会发送一一个空白行来表示头信息的发送到此结束,接着,它以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
7) Web服务器关闭TCP连接。一般情况下, 一旦Web服务器向浏览器发送了请求数据,就要关闭TCP连接。如果浏览器或者服务器在其头信息加入了代码onnctionke-alive,那么TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连按发送请求。保持连接不仅节省了为每个请求建立新连接所需的时间,而且节约了网络带宽。
4、HTTP常用的请求方法
1.GET:获取指定web对象的内容是默认HTTP请求的方法。
2.post:用于向服务器主机上的某个进程发送数据,post方法提交的数据可以从标准输入流中获取。
3.请求信息由三部分组成:1.请求方法URI协议版本2.请求头3.请求正文
5、HTTP应答
HTTP响应信息由三部分组成(响应头和响应正文之间有一个空白行)

  1. 协议/版本
  2. 响应头
  3. 相应正文
    6、HHTTPS
    以明文方式发送内容,不提供任何方式数据加密;为解决HTTP这一缺陷,需要使用另一种协议:安全套接字超文本传输协议——HTTPS
    7、web开发技术
    1.HTML:超文本标记语言用于描述网页
    2.Javascript:是一种基于对象和事件驱动并具有安全性能的脚本语言
    3.css:用于进行网页风格设置
    4.XML:是一种标记语言,主要用于结构化文档信息,HTML标签都是预定义的,而xml没有预定义的标签,需要自定义。
    8、CGI
    原理:公共网关接口是外部应用程序与web服务器之间的接口标准,是在CGI程序和web服务器间传递信息的规程。
    9.web会话
    1.常用的web会话技术
    Cookie机制原理:实际上是一段文本信息,在客户端由浏览器来管理。
    Session机制原理:Cookie保存在客户端由浏览器上,Session保存在服务器上。
    10、集成ssh框架的系统从职责上分为四层
    表示层、业务逻辑层、数据持久层、数据块层(实体层)
    SSH业务流程
    《分布式计算、云计算与大数据》总结

11、struts作为系统的整体基础架构、负责mvc的分离。
12、mvc三个组成部分:模型、视图、控制器
Struts架构的工作原理
《分布式计算、云计算与大数据》总结

第六章 P2P原理与实践

1、p2p的概念
对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。P2P “点对点”或者“端对端”,定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。
在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。
2、p2p的技术特点
1)、非中心化 2)、可扩展性 3)、健壮性 4)、高性价比 5)、隐私保护 6)、负载均衡
2、p2p的实践应用

  1. 文件共享和下载
  2. 多媒体传输
  3. 即时通信
  4. 协同工作
  5. 分布式数据存储
  6. 分布式对等计算
  7. P2P搜索引擎
    3、P2P网络的分类
    第一代P2P网络:中心化拓扑结构
    第二代P2P网络:
    1.全分布式非结构化拓扑结构 文件的网络共享
    2.P2P网络的分类全分布式结构化拓扑结构环型算法
    第三代P2P网络:1.半分布式结拓扑结构 2.P2P文件共享
    第四代P2P网络: 正在研究的P2P拓扑技术
    4、P2P的典型应用:文件共享、直播通信
    5、P2P的典型应用系统:
    1.中心化拓扑的典型应用系统Napster
    2.全分布非结构化拓扑的典型应用Gnutella
    3.全分布结构化拓扑的典型应用chord
    4.半分布式拓扑的典型应用KaZaA

第八章 云计算原理与技术

1、云计算的起源:
1984年sun公司提出了网络纪计算机
2003年platform提出了网格计算池
2006年Gongle提出了云计算
2、云计算的定义
云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而达到强大的网络服务。
现阶段所说的云服务已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。
云计算的4种部署方式:私有云、社区云、公有云、混合云
云计算3种服务模式:软件即服务、平台即服务、基础设施即服务
3、云计算的分类
1.Laas:是云计算的基础,为上层云计算服务提供必要的硬件资laas 源,同时在虚拟化技术的支持下, laaS层可以实现硬件资源的按需配置,虚拟化技术是aaS的关键术。
2.PaaS :PaaS既要为SaaS层提供可靠的分布式编程框架,又要云计算的分类 Paas 为laaS层提供资源调度、数据管理、屏蔽底层系统的复杂性等支持。
3.SaaS:SaaS层部署在PaaS和IaaS平台之上,同时用户可以在PaaS平台上开发部署SaaS服务
4、云计算与其他计算形式
1)、云计算与分布式计算
2)、 云计算与网格计算
3)、云计算与对等计算
4)、云计算与并行计算
5、云计算关键技术:
1.体系结构:三个层次:资源层、平台层与应用层。
资源层汇聚支撑云计算上层服务的各种物理设备,如服务器、网络设备、存储设备等,将这些物理设备,通过虚拟化层采用相应技术形成动态资源池,并对资源池的各种资源进行管理。
平台层在资源层之上,它把软件开发环境当做服务提供给用户,平台层主要为应用程序开发者设计,面向广大互联网应用开发者,把分布式软件开发、测试、部署、运行环境以及复杂的应用程序托管当作服务,使得开发者可以从复杂低效的环境搭建、配置和维护工作中解放出来,将精力集中在软件编写上,从而大大提高软件开发的效率,平台层是整个云计算系统的核心层,包括并行程序设计和开发环境,一些管理系统和管理工具。
应用层面向用户提供软件服务和用户交互接口,它为用户搭建信息化所需要的所有网络基础设施及软硬件运作平台,负责所有前期的实施、后期的维护等一系列工作,用户可随意根据自己的需要租赁软件服务,不必再购买软硬件、建设机房及配备维护人员。
资源层、平台层与应用层是云计算体系结构的主要组成部分,基于这三个层次,不但整体实现了信息应用服务的定制化,而且实现了底层逻辑基础资源、基础软件和应用的一体化,即信息服务以一个整体的形式出现。
2、数据存储:云计算环境下的数据存储,通常称为海量数据存储、或大数据存储
1.传统的关系数据库中强调事务的ACID特性:原子性、一致性、隔离性、持久性
2.出现基于BASE特性的新型数据库只要求满足:基本可用、柔性状态、最终一致性
3.NoSOL数据库特征:模式*、支持简易备份、简单的应用程序接口、最终一致性、支持海量数据
4.大规模数据管理技术
云技术能对海量的数据进行处理、利用的前提是,数据管理技术必须具备高效的管理大量的数据的能力。目前,云计算系统中的数据管理技术主要是Google的Big Table数据管理技术和Hadoop开发的开源数据管理模块HBase。
云计算平台的存储结构
《分布式计算、云计算与大数据》总结

3、编程模型
要使用户能够简便、轻松的获取云环境下的编程服务,编程模型必须具备简洁易操作的性能,那样,用户只要通过简单程序编写就能达成既定的目标。此外,编程模型后台复杂的并行执行、任务调度向用户和编程人员保持透明,又是该服务的一大特色。例如Google构造的Map Reduce编程规范就可满足上述要求,过Map和Reduce两个简单概念构成基本的运算单元便可以并行处理海量的数据。Map Reduce既满足了编程模型需要,也满足了任务调度模型的需求,目前使用较广泛。
4、Google云计算原理
1.GFS:开发了文件分布式存储
2.MapReduce:并行计算
3.BigTable:采用列式存储
5、Amazon云服务
2001年互联网泡沫使业务量锐减,系统资源大量闲置
其他组件:

  1. ec2:成本低、易用性、安全性、容错性;弹性云动作是基于即买即用模式。
  2. s3:只提供简单数据存储。

第10章 云存储技术

1、 存储组网形态
存储技术是计算机的核心技术之一,计算机的存储技术(如硬盘、网络存储、虚拟化存储等技术)第一台硬盘存储器当时他的容量只有5MB;RAID技术出现;SAN技术出现。
2、存储的分类
根据服务器类型划分:
《分布式计算、云计算与大数据》总结

2、 DNS:优点1.连接简单 2.低成本需求 3.较好的性能
3、 DNS:缺点1.有限的扩展性 2.专属的连接 3.TCO(总拥有成本高)
4、 NAS:优点1.资源共享 2.构建于ip网络之上 3.部署简单 4.较好的扩展性
5、 NAS:缺点 1.可扩展有限性 2.带瓶颈
6、 SAN:优点 1.实现存储介质的共享 2.非常好的扩展性 3.易于数据备份和恢复4.高性能45.低的TCO 6.lan*服务器* 7.支持服务器集群手段
7、 SAN:缺点 1.成本高2.需要专用连接技术3.SAN孤岛 4.技术较为复杂 5.需要专业人士维护
11、DNS、NAS、SAN存储组网形态比较
DAS:直接附加存储
DAS(Direct Attached Storage—直接附加存储)是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。DAS的适用环境为:
1)服务器在地理分布上很分散,通过SAN或NAS在它们之间进行互连非常困难时。
2)存储系统必须被直接连接到应用服务器(如Microsoft Cluster Server或某些数据库使用的“原始分区”)上时;
3)只有单台服务器,存储设备无需与其他服务器共享。
SAN:存储区域网络
SAN存储通过光纤交换机将磁盘空间分配给不同的服务器,服务器通过以太网对外提供服务,存储区域与用户的应用区域隔离。
SAN(存储区域网络)通过光纤通道连接到一群计算机上。在该网络中提供了多主机连接,但并非通过标准的网络拓扑。
高带宽:SAN的结构允许任何服务器连接到任何存储阵列,这样不管数据置放在那里,服务器都可直接存取所需的数据。因为采用了光纤接口,SAN还具有更高的带宽。
独立的存储网络:因为SAN解决方案是从基本功能剥离出存储功能,所以运行备份操作就无需考虑它们对网络总体性能的影响。
管理便捷:SAN方案也使得管理及集中控制实现简化,特别是对于全部存储设备都集群在一起的时候。
远距离部署:光纤接口提供了50公里的连接长度,这使得实现物理上分离的、不在机房的存储变得非常容易。
SAN主要用于存储量大的工作环境,如ISP、银行等,最大的缺点就是成本高。
总结
根据DAS、NAS、SAN的不同特性,DAS及SAN是基于存储空间的磁盘分配,是基于硬件层面的存储方式,而NAS则是基于应用层面的存储方式,可以根据应用环境来对其进行总结。
DAS多采用SCSI或SAS接口,由于部署节点的单一性及较高的性能,适用于单一节点的企业级应用,或者地理位置比较分散的服务器使用。DAS由于部署的局限性目前使用量越来越少。
NAS利用现有以太网网络,因此部署灵活,部署的成本非常低,基于TCP/IP协议的特性可以提供丰富的网络服务,基于文件的形式提供数据的存储及备份,但是TCP/IP协议决定了数据传输的数据打包及解包会占用系统资源,另外传输速率受限于以太网的速率,因此不适用于企业级应用,通常部署于部门级应用。
SAN存储使用光纤网络进行传输,并且独立于应用网络,可以提供非常高的带宽,数据的传输基于块协议,无需对数据进行处理,直接进行传送,因此性能最好,另外光纤线路可以提供远距离的高带宽链路,可以实现数据中心的异地灾备应用,但是部署成本较高。因此SAN存储多应用于企业级的存储部署中。
12、RAID相关概念
 RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
13、RAID 0条带形式可以提供8kb、16kb、32kb、64kb、128kb等多种深度参数
优点1.可多i/o操作并行处理
2.速度快
3.设计是由与配置简单
缺点1.无冗余一个失败数据全部丢失
2.无数据备份
14、适用领域:视频生成和编辑、图像编辑
15、RAID 0至少需要2个磁盘个数
16、RAID0
RAID0 是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID ,因为它并不提供任何形式的冗余策略。 RAID0 将所在磁盘条带化后组成大容量的存储空间(如图 2 所示),将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用。再加上不需要进行数据校验,RAID0 的性能在所有 RAID 等级中是最高的。理论上讲,一个由 n 块磁盘组成的 RAID0 ,它的读写性能是单个磁盘性能的 n 倍,但由于总线带宽等多种因素的限制,实际的性能提升低于理论值。
  RAID0 具有低成本、高读写性能、 100% 的高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。 因此, RAID0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。
《分布式计算、云计算与大数据》总结
图2 RAID0 :无冗错的数据条带
2.RAID1
  RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像 磁盘,它的磁盘空间利用率为 50% 。 RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。 RAID1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。工作原理如图 3 所示。
  RAID1 与 RAID0 刚好相反,是为了增强数据安全性使两块 磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。 RAID1 拥有完全容错的能力,但实现成本高。 RAID1 应用于对顺序读写性能要求高以及对数据保护极为重视的应用,如对邮件系统的数据保护。
《分布式计算、云计算与大数据》总结
图3 RAID1 :无校验的相互镜像
3.RAID2
  RAID2 称为纠错海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余。海明码是一种在原始数据中加入若干校验码来进行错误检测和纠正的编码技术,其中第 2n 位( 1, 2, 4, 8, … )是校验码,其他位置是数据码。因此在 RAID2 中,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定的数据存储宽度,可由用户设定。图 4 所示的为数据宽度为 4 的 RAID2 ,它需要 4 块数据磁盘和 3 块校验磁盘。如果是 64 位数据宽度,则需要 64 块 数据磁盘和 7 块校验磁盘。可见, RAID2 的数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多。
海明码自身具备纠错能力,因此 RAID2 可以在数据发生错误的情况下对纠正错误,保证数据的安全性。它的数据传输性能相当高,设计复杂性要低于后面介绍的 RAID3 、 RAID4 和 RAID5 。
但是,海明码的数据冗余开销太大,而且 RAID2 的数据输出性能受阵列中最慢磁盘驱动器的限制。再者,海明码是按位运算, RAID2 数据重建非常耗时。由于这些显著的缺陷,再加上大部分磁盘驱动器本身都具备了纠错功能,因此 RAID2 在实际中很少应用,没有形成商业产品,目前主流存储磁盘阵列均不提供 RAID2 支持。
《分布式计算、云计算与大数据》总结
图 4 RAID2 :海明码校验
4.RAID3
  RAID3 (图 5 )是使用专用校验盘的并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据按位可字节的方式交叉存储到各个数据盘中。RAID3 至少需要三块磁盘,不同磁盘上同一带区的数据作 XOR 校验,校验值写入校验盘中。 RAID3 完好时读性能与 RAID0 完全一致,并行从多个磁盘条带读取数据,性能非常高,同时还提供了数据容错能力。向 RAID3 写入数据时,必须计算与所有同条带的校验值,并将新校验值写入校验盘中。一次写操作包含了写数据块、读取同条带的数据块、计算校验值、写入校验值等多个操作,系统开销非常大,性能较低。
  如果 RAID3 中某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据。假如所要读取的数据块正好位于失效磁盘,则系统需要读取所有同一条带的数据块,并根据校验值重建丢失的数据,系统性能将受到影响。当故障磁盘被更换后,系统按相同的方式重建故障盘中的数据至新磁盘。
  RAID3 只需要一个校验盘,阵列的存储空间利用率高,再加上并行访问的特征,能够为高带宽的大量读写提供高性能,适用大容量数据的顺序访问应用,如影像处理、流媒体服务等。目前, RAID5 算法不断改进,在大数据量读取时能够模拟 RAID3 ,而且 RAID3 在出现坏盘时性能会大幅下降,因此常使用 RAID5 替代 RAID3 来运行具有持续性、高带宽、大量读写特征的应用。
《分布式计算、云计算与大数据》总结
图5 RAID3 :带有专用位校验的数据条带
5.RAID4
  RAID4 与 RAID3 的原理大致相同,区别在于条带化的方式不同。 RAID4 (图 6 )按照 块的方式来组织数据,写操作只涉及当前数据盘和校验盘两个盘,多个 I/O 请求可以同时得到处理,提高了系统性能。 RAID4 按块存储可以保证单块的完整性,可以避免受到其他磁盘上同条带产生的不利影响。
  RAID4 在不同磁盘上的同级数据块同样使用 XOR 校验,结果存储在校验盘中。写入数据时, RAID4 按这种方式把各磁盘上的同级数据的校验值写入校验 盘,读取时进行即时校验。因此,当某块磁盘的数据块损坏, RAID4 可以通过校验值以及其他磁盘上的同级数据块进行数据重建。
  RAID4 提供了 非常好的读性能,但单一的校验盘往往成为系统性能的瓶颈。对于写操作, RAID4 只能一个磁盘一个磁盘地写,并且还要写入校验数据,因此写性能比较差。而且随着成员磁盘数量的增加,校验盘的系统瓶颈将更加突出。正是如上这些限制和不足, RAID4 在实际应用中很少见,主流存储产品也很少使用 RAID4 保护。
《分布式计算、云计算与大数据》总结
图6 RAID4 :带有专用块级校验的数据条带
6.RAID5
   RAID5 应该是目前最常见的 RAID 等级,它的原理与 RAID4 相似,区别在于校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。因此, RAID5 不存在 RAID4 中的并发写操作时的校验盘性能瓶颈问题。另外, RAID5 还具备很好的扩展性。当阵列磁盘 数量增加时,并行操作量的能力也随之增长,可比 RAID4 支持更多的磁盘,从而拥有更高的容量以及更高的性能。
  RAID5 (图 7)的磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,当一个数据盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。与其他 RAID 等级一样,重建数据时, RAID5 的性能会受到较大的影响。
  RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。 RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。
《分布式计算、云计算与大数据》总结
图7 RAID5 :带分散校验的数据条带
7.RAID6
  前面所述的各个 RAID 等级都只能保护因单个磁盘失效而造成的数据丢失。如果两个磁盘同时发生故障,数据将无法恢复。 RAID6 (如图 8 )引入双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。 RAID6 等级是在 RAID5 的基础上为了进一步增强数据保护而设计的一种 RAID 方式,它可以看作是一种扩展的 RAID5 等级。
  RAID6 不仅要支持数据的恢复,还要支持校验数据的恢复,因此实现代价很高,控制器的设计也比其他等级更复杂、更昂贵。 RAID6 思想最常见的实现方式是采用两个独立的校验算法,假设称为 P 和 Q ,校验数据可以分别存储在两个不同的校验盘上,或者分散存储在所有成员磁盘中。当两个磁盘同时失效时,即可通过求解两元方程来重建两个磁盘上的数据。
RAID6 具有快速的读取性能、更高的容错能力。但是,它的成本要高于 RAID5 许多,写性能也较差,并有设计和实施非常复杂。因此, RAID6 很少得到实际应用,主要用于对数据安全等级要求非常高的场合。它一般是替代 RAID10 方案的经济性选择。

《分布式计算、云计算与大数据》总结
17、各种级别RAID比较
《分布式计算、云计算与大数据》总结
18、快照:快照卷可读取、写入或复制,需要相当于快照源卷20%的额外空间,主要用途是利用少量存储空间,保存原始数据的备份文件,逻辑卷恢复及备份测试数据分析等。
19、把数据存放在不同类别的存储设备中,通过分级存储管理软件实现数据实体数据,实体在存储设备之间的自动迁移。
20、云存储概念与技术原理:云存储两种主流技术解决方案分布式存储和存储虚拟化
1.分布式存储:

  1. 分布式块存储块存储将存储区域分成固定大小的小会,是传统裸存储设备的存储空间,对外暴露方式。
  2. 分布式文件存储: 1.提供海量非结构化数据存储空间
    2.把分布在局域网内,各个计算机上的共享文件夹集合成一个虚拟共享文件夹。
    NAS: 网络附加存储NAS是一种文件,网络存储结构通过以太网及其他标准的网络拓扑结构,将存储设备连接到许多计算机上,建立专用于数据存储的存储内部网络。
    GFS:是谷歌公司为了存储海量搜索数据而设计的专用文件系统。
    Hdfs:是运行在运用硬件上的分布文件系统,提供了一个高度容错性和高吞吐量量的海量数据存储解决方案。
    2.分布式对象存储:具有SAN的高性能和交换网络结构的可伸缩性
    组成部分: 1.对象对象存储的基本单元
    2.对象存储设备
    3.对象存储系统的核心文件
    4.系统元数据服务器为客户端提供原数据
    5.网络连接对象存储系统的重要组成部分
    对象特点:1. 对象是介于文件和块之间的一种抽象,具有唯一的ID
    2.每个对象是一系列有序字节的集合,是数据和数据属性及的综合体
    3.对象维护自己的属性,简化了存储系统的管理任务,增加了灵活性
    4.对象分为根对象、组对象和用户对象

3.分布式表存储:
分布式表存储系统的目标是管理结构化数据和半结构化数据表,存储系统用来向应用系统提供高可扩展表存储空间,包括交易型数据库和分析型数据库。
21、存储虚拟化:分类抽象、隐藏、隔离
三种途径: 基于主机存储虚拟化、基于网络存储虚拟化、基于存储设备存储虚拟化

22、对象存储技术:所有对象都有一个对象标识是传统的块存储。
组成:
1.对象:根对象、分区对象、集合对象、用户对象
2.OSD:负责管理本地的对象是对象存储系统的核心。
它提供了三个主要功能:1.数据存储 2.智能分布 3.每个对象元数据的管理。
3.MDS功能:1.对象存储访问 2.文件目录访问管理 3.客户端cache一致性
《分布式计算、云计算与大数据》总结

第11章 大数据技术与实践

1、大数据概述:大数据:指无法在可承受的时间内用软硬件进行捕捉、管理和处理的数据集合,需要新处理模式才能使数据集合称为具有更强的决策力、洞察力和流程优化等能力的海量、多样化的信息资产。
2、大数据产生背景:
1.数据量大,数据种类多。
2.海量数据的高存储成本,大数据两下数据处理性能不足,流式数据处理缺失。
3.优先的扩展能力,单一数据源。
4.数据资产对外增值。
2、大数据的4V特征
1.量大(Volume):存储大,计算量大;
2.样多(Variety):来源多,格式多;
3.快速(Velocity): 生成速度快,处理速度要求快。
4.价值(Value):价值密度低,和数据总量的大小成反比。
3、大数据存储平台
1.HDFS:分布式文件系统(HDFS)是指被设计成适合运行在通用硬件上的分布式文件系统(Distributed File System)。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
2.HDFS设计目标:1. 检测和恢复硬件故障 2.存储大数据集 3.应用程序流式的访问hdfs上的数据集 4.可移植性让计算随数据的位置从而移动降低了硬件负担,节省网络带宽。
HDFS体系结构

  1. HDFS副本放置策略  
    HDFS副本放置策略对于HDFS可靠性和性能至关重要。副本放置策略关系到数据的可靠性、可用性和网络带宽的利用率。对于副本放置策略的优化让HDFS在分布式文件系统中脱颖而出,这一调优是需要大量实践经验作为依托的。
      HDFS采用基于机架感知的副本放置策略,将副本存放在不同的机架上,即第一个副本放在客户本地节点上,另外两个副本随机放置在远程机架上,这样可以防止当某个机架失效时数据的丢失,在一个数据中心中往往不只有一个机架,对于大部分数据中心来说,不同机架上节点之间的通信需要经过多个交换机,其带宽比相同机架节点之间的通信带宽要小。因此,基于机架感知的副本放置策略可以在网络带宽和数据可靠性之间取得平衡。

2、HBase:HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统”。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
1.HBase的特性
1)线性和模块化的扩展性;
2)严格的读写一致性;
3)自动且可配置的数据表分片机制;
4)RegionServer之间可以进行热备份切换;
5)为MapReduce操作HBase数据表提供方便JAVA基础类;
6)易用的JAVA客户端访问API;
7)支持实时查询的数据块缓存和模糊过滤;
8)提供Trift网关和REST-ful Web服务,并支持XML,Protobuf和二进制编码;
9)可扩展的Jrubyshell;
10)支持通过Hadoop检测子系统或JMX导出检测数据到文件、Ganglia集群检测系统。
HBase体系架构
《分布式计算、云计算与大数据》总结

3、cassandra:Apache Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。有hbase的列和列族的机制,同时又有自己的超级列和超级族。
4、Redis:是一种面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。
Redis是一个支持持久化的内存数据库(与Memcache类似),也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库 数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。
 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。
5、MongoDB:是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
1.MongoDB的功能及使用范围
网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载。
大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。
用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。
  2.组织数据的方式如下:Key-Value对 > 文档 > 集合 > 数据库。
 多个Key-Value对组织起来形成类似于JSON格式的文档,多个文档组织成为一个集合,多个集合组织起来,就形成了数据库(database)。单个MongoDB实例可以使用多个数据库。
6、大数据计算模式
1.PRAM:即并行随机存取机,也称之为SIMD-SM(共享存储的单指令流多数据流)模型,是一种应用于并行计算抽象模型。PRAM模型是顺序的冯·诺伊曼存储程序模型的自然扩展,由若干具有本地存储器的处理器和一个具有无限容量的共享存储器组成,处理器由公共的时钟进行控制,以同步方式运行。

2.PRAM分类:
1.互斥读和互斥写,简记之为PRAM-EREW;
2.并行读但互斥写,简记之为PRAM-CREW;
3.并行读并且并行写,简记之为PRAM-CRCW。
7、BSP:由哈佛大学Viliant和牛津大学Bill McColl提出,希望像冯·诺伊曼体系结构那样,架起计算机程序语言和体系结构间的桥梁,故又称作桥模型(Bridge Model)。本质上,BSP模型是分布存储的MIMD计算模型,被认为是最有前途的并行计算模型。
1.BSP模型的组成:一个BSP计算机由n个处理机/存储器组成,通过通信网络进行互联,。一台BSP并行计算机包含三个部分组成:并行计算模块、通信模块、路障同步模块。
一台BSP并行计算机由3个部分组成:1.并行计算机模块;2.通信模块3.路障同步模块
8、LogP:LogP使用了L,O,G,P四个参数来描述这个模型。LogP模型是一种面向分布式存储器、点对点通信的多计算机系统的并行计算模型。
9、MapReduce:是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)“和"Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
1.MapReduce执行流程:
1.数据分片
2.Master分配Map任务
3.分配了map任务的worker读取和处理相关split的内容
4.Master协调分配reducer到相应Mapper获取数据,期间称为Shuffle,包括一个按Key排序过程。
5.Reducer对每个Key相应的Value列表进行读取并处理
6.Reducer将处理后的文件写入HDFS输出文件
《分布式计算、云计算与大数据》总结
10、Spart总体构架:Spark 是一种与 Hadoop 相似的而又强于Hadoop的开源集群计算环境,由加州大学伯克利分校 AMP 实验室开发。Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
11、大数据分析处理平台
1.impala平台:Impala是CDH(Cloudera Distribution with Apache Hadoop)的一个组件,是一个对大量数据并行处理(MPP-Massively Parallel Processing)的查询引擎。
2.Impala基本构架
《分布式计算、云计算与大数据》总结
12、HadoopDB平台:HadoopDB旨在结合MapReduce的可扩展性优势和并行数据库的性能、效率优势,以管理和分析大数据。HadoopDB背后的基本思想是,连接多个单节点数据库系统 (PostgreSQL),使用 Hadoop 作为任务协调者和网络通信层;查询用 SQL 表达,但是其执行是使用 MapReduce 框架跨节点并行化的,以便将单一查询工作尽可能推送到相应的节点数据库中。
1.HadoopDB总体架构
《分布式计算、云计算与大数据》总结
2. HadoopDB优缺点:
优点:

  1. 结合HIVe对SQL,强大的支持并直接生成Map Reduce任务,不需要手动编写Map Reduce程序
  2. 利用关系数据库查询数据,利用了其单节点的性能优势
  3. 可以利用Hadoop锁具的高容错性,高可用性,以及对高通量计算的性能优越性
    缺点:
  4. 如果不想手动编写Map Reduce程序,则查询SQL数据,不能来源于多张表,因为目前只相当于对一个数据库的多个分块并行查询,所以不能处理多分块的数据关系。
  5. 其数据预处理代价过高
  6. 将查询推向数据库底层只是少数情况,大多数情况查询仍有hive完成
  7. 维护代价过高,不仅要维护Hadoop系统,还要维护每个数据库结点
  8. 目前尚不支持数据库的动态划分,需要手动一次划分好