基于Hadoop云模型及相关云技术研究
云计算关键技术
云计算是由企业界开始发展,然后才进入学术界引起重视的,这与网格计算相反。经过对迄今为止的云计算相关学术论文进行统计分析后,显示学术界对于云计算的研究主要集中在云技术关键技术方面。云计算研究的关键技术包括虚拟机、安全管理、数据管理、云监测、能耗管理和计算模型等。云计算的计算模型是研究如何针对某类应用特点提出效率更高的编程方式,目前云计算模型众多,而Hadoop是一个开源的分布式系统基本架构,正日益成为具有较强实用性的开发平台.淘宝就是国内率先使用Hadoop的公司之一。
云计算关键技术
1.1 虚拟机
虚拟机是云计算的关键技术之一。目前在云计算中使用的主要虚拟机之一就是VMware Infrastructure。它是一个虚拟数据中心操作系统,可以将离散的硬件资源统一起来以创建共享平台。其优点有:①整合服务器以降低IT成本;②暗哨计划内和计划外停机以改进业务连续性;⑧运行较少的服务器并且动态关闭不使用的服务器。
1.2 安全管理
云计算是计算机资源的整合,通过云计算设施中的任何一台计算机,任何隐私信息都能够被找到。云计算安全问题已经成为急需解决的重要问题。其中,Siani Persion等提出了在云计算服务设计过程中保护用户隐私的一些设计原则:① 发送尽量少的个人信息到云中,或者对系统进行分析后只对一小部分个人信息进行必要的收集和采集;② 采用安全措施防止未授权的访问、复制、使用或者修改个人信息来保护云中的个人信息:③最大限度地实现用户控制。在云计算环境中,让用户完全控制个人信息是比较困难的。要加强对个人信息的控制:一可以允许用户控制最重要的个人信息;二可以委托信任的第三方来管理:④允许用户对个人信息的使用进行选择,即加入、退出机制;⑤明确以及限制数据使用的目的。个人信息必须被身份明确的人使用和处理;⑥有反馈机制。即设计人及界面清楚地表明云服务中采取的安全措施,用其向用户提供安全提示。
1.3 数据管理
云计算具有计算能力可变、数据储存在不信任的主机上、数据是远程复制等3个特点。从这3个特点分析而出,只有两种数据管理应用程序可能适合部署到云计算中:一是和事务处理相关的数据管理系统:另一种是和分析相关的数据管理系统。前者未采用共享的体系结构,在进行远程数据复制时很难满足ACID的需求,同时在不信任的主机上存储数据也有比较大的风险。ACID要求对于基于分析的数据管理系统来说不是必须的,同时可以保证敏感数据在分析之外,从而保证其安全。因此,基于分析的数据管理系统应该很合适部署到云计算环境中去。
1.4 云监测和能耗管理
云监测是随着云计算的推广、云设施不断增加、为了更好地体现云计算的强大计算处理能力而设置的对虚拟机监控的能力:能耗管理是如何节省云设施中计算设施所需要的能源、有效整合资源、降低成本。
1.5 云计算的计算模型
现行的分布式计算系统可以提供强大的计算能力.但非专业用户并不能有效地利用,一个庞大的任务很可能由于初学者的偶然操作导致性能的大幅下降。为了解决这些问题,应该提供给用户一个高度抽象的产品系统.这些就是云计算的计算模型。提到云计算模型,就不得不说一个开源框架,那就是Hadoop。
Hadoop是一个分布式系统基本架构。由Apache开发,使用户在不了解分布式底层细节的情况下,开发分布式程序。简单点说。Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。
Hadoop实现了一个分布式文件系统(Hadoop DistributedFile System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的硬件上。而且它提供高传输率来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX标准的要求。这样可以流的形式访问文件系统中的数据。
图1 Hadoop结构
Hadoop采用Master/Slave结构(如图1),会有一台Mas.ter,主要负责NameNode的工作以及JobTracker的工作,Job.Tracker的主要职责就是启动、跟踪和调度各个Slave的任务执行。还会有多台Slave,每一台Slave通常具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。