基于Hadoop的云存储系统的设计与研究
- 格式:pdf
- 大小:280.58 KB
- 文档页数:4
基于Hadoop的性能优化分析摘要:该文对Hadoop平台的性能优化进行了研究,围绕Hadoop 配置参数、任务调度算法两个角度来分析优化的方法,并且与Hadoop 传统的性能优化方法进行了对比,指出其存在问题的是缺乏动态性和灵活性,Hadoop集群优化对于提高系统性能和执行效率具有重大的意义。
关键词:云计算调度优化性能分析1 Hadoop数据处理平台存在的问题Hadoop是MapReduce的一个开源实现,凭借其高可靠性、高扩展性、高效性、高容错性Hadoop成为业内大数据处理的优秀解决方案,其按位存储和处理数据的能力值得人们信赖。
但是仍旧存在不少问题。
(1)MR思想的低效性;MR的思想,会导致将一个计算分成多步来执行,每步之间还插入了数据存储等操作,导致了冗余的数据存储过程。
(2)Namenode/Jobtracker单点故障。
Hadoop采用的是master/slaves 架构,该架构管理起来比较简单,但如果单一节点停止运行将会导致数据节点无法通信,实际上这也将导致整个系统停止工作。
(3)数据处理线性模式;数据的处理流程是一个有向无环图,使用MapReduce就会产生较多的步骤,需要考虑如何分割任务、如何并行等。
(4)Jobtracker同时进行监控和调度,负载过大。
因此在实际使用中需要我们考虑如何针对上述的缺点进行针对性的优化。
2 Hadoop性能优化方法为了提高其数据性能,主要采用以下几个思路:从Hadoop参数、任务调度等角度来进行优化。
2.1 Hadoop参数配置优化2.1.1 Linux文件系统参数默认情况下,当系统运行需要访问大量文件,linuxet2/et3文件系统在创建和修改时会记录下文件的时间戳,导致访问速率变慢。
同时关闭noatime和nodiratime可提升文件系统的性能。
避免执行RADI和LVM,特别是在TaskTracker和DataNode节点上。
2.1.2 配置参数调整dfs.namnode.handler.count表示namenode和jobtracker中用于处理RPC的线程数,默认是10。
基于HDFS的优化数据冗余策略的研究互联网的发展及其应用的增多导致其业务数据的暴增,传统的数据存储和处理技术已经无法满足如此日益增长的海量数据的需求。
近年来,新兴的云计算具有存储和处理海量数据的能力,以及高可扩展性、高可靠性等优势,利用云计算技术存储和处理海量数据已经成为必然趋势。
为了提高容错性和数据的有效性,云存储系统中引入了冗余机制,但同时也给副本管理带来了很多新挑战。
比如HDFS(Hadoop Distributed File System)引入了数据完全备份的冗余方式来解决容错问题,并且当备份被分散地存储到不同地理位置的节点上时,采用就近原则访问可以降低访问时延,然而,这种方式具有存储空间消耗大、数据不可修复等缺陷。
为此,一些学者提出了在云存储系统中引入纠删码来增强其数据可靠性,但纠删码的编解码操作需要耗费更多的系统资源并增加用户访问时延。
为了结合二者的优势,将纠删码与完全备份结合的冗余方案REPERA(Replication和Erasure 的前三个字母)被提出,但是它没有给出副本数确定和副本放置的依据。
本文针对HDFS原有冗余机制的不足,在分析现有改进方法的基础上,设计了结合完全备份和改进的RS(Read-Solomon)纠删码两种冗余方法的优化数据冗余策略RIRS(Replication Improved RS)。
该策略能够中和上述两种冗余方法的缺陷,有效地整合完全备份的低时延和纠删码冗余可靠性高的优势,并大大地节省存储空间。
该策略还为用户提供了备份数以及纠删码冗余度等配置参数,用户可以根据需要进行设置以将系统调整为最佳状态。
此外,该策略采用的纠删码算法也是经过实验分析符合HDFS的,具有很高的纠错能力和相对较低的编码时延,提高系统可靠性的同时减少了时延的增加。
另外,针对RIRS中副本管理的不足,本文设计了动态副本管理优化模型DRMO(Dynamic Replication Management Optimized),它能根据文件的有效性要求获取最小副本数并动态调节副本数以获取低成本、高效率的存储服务。
云存储及应用特点1、云存储云存储是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来工作,共同对外提供数据存储和业务访问功能的一个系统。
云存储不同于传统存储,不是某一个存储设备,而是使用整个云存储系统带来的一种数据访问服务,云存储系统的结构模型由四层组成。
具体模型如图1所示。
图1云存储模型图(1)存储层:是云存储最基础的底层。
存储设备可以使FC-SAN,也可以是NAS或IP-SAN,也可以是SCSI或SAS 等DAS存储设备。
存储设备上是一个统一存储设备管理系统,可以实现存储设备的逻辑虚拟化管理、多冗余管理,以及设备的状态监控和维护。
(2)基础层:是云存储最核心的部分,通过集群、分布式文件系统和网格计算等技术,实现云存储中多个存储设备之间的协同,使多个存储设备可以对外提供同一种服务,并提供强大的数据访问性能。
CDN内容分发、数据加密技术保证数据不会被非法访问,同时,数据备份和容灾技术可以保证数据的安全,防止丢失。
(3)接口层:具有多种协议接口,能够根据系统灵活适配,开放不同的服务接口,提供不同的应用服务。
(4)用户访问层:任何授权用户都可以通过标准的登录页面进行访问,享受服务。
云存储根据访问对象的不同,提供的访问类型和访问手段也不同。
在云存储实现过程中,为了保证存储系统的可靠性,需要将数据复制多份进行灾备,在数据规模急剧增长时,需要对传统的数据库进行分库拆分,进行线性扩展,保证数据的安全。
云存储具有以下特点:(1)高可扩展性:云存储支持海量数据存储,资源可以实现按需扩展;(2)低成本:相比较传统磁盘阵列,云存储更多使用PC服务器,具有更高的性价比;(3)软硬件分离:相比传统存储,云存储强调用户存储的灵活支持,以多种存储方式存储数据,支持外部随时访问。
2、存储方式云存储根据技术分类主要包括:文件存储、块存储和对象存储。
(1)文件存储文件存储是提供文件接口(如POSIX协议)的云存储系统,以标准文件系统接口形式向应用系统提供海量非结构化数据存储空间。
云计算环境下的分布式数据存储技术研究随着云计算技术的飞速发展,分布式数据存储技术逐渐成为数据处理中不可或缺的技术之一。
在传统的单一服务器中,数据的存储和处理能力有限,而分布式数据存储技术的优势在于将数据分散存储到多个不同的节点上,实现数据备份和负载均衡。
本文将介绍云计算环境下的分布式数据存储技术研究,包括其概念、分类以及典型的技术架构。
一、概述分布式数据存储技术是将数据分散存储到多台计算机上,通过网络进行数据交换和管理的技术。
其优势在于提供了高可用性、高性能、高扩展性等特点,可以满足大规模数据存储和处理的需求。
在云计算环境下,分布式数据存储技术更是成为了支撑云计算的重要技术之一。
二、分类分布式数据存储技术可以根据实现方式的不同进行分类,主要包括:1. 分布式文件系统:分布式文件系统将文件划分为若干个块,存储到多台计算机上,通过某种方式进行管理,提供可靠的存储服务。
常见的分布式文件系统有Hadoop文件系统(HDFS)、Google文件系统等。
2. 分布式对象存储:分布式对象存储是将数据存储为对象,每个对象具有唯一的标识符,通过对象的标识符进行访问和管理。
常见的分布式对象存储有OpenStack Swift、CEPH等。
3. 分布式键值存储:分布式键值存储是将数据存储为键值对的形式,每个键值对都有唯一的键值标识符,通过键值标识符进行数据访问和管理。
常见的分布式键值存储有Redis、Apache Cassandra等。
三、技术架构通常,分布式数据存储技术具有节点、集群和副本三个层次的技术架构。
1. 节点层:节点层是分布式数据存储技术的基础层,节点通常由计算机组成,每个节点具有存储、计算和管理数据的能力。
节点层是存储数据的最基本单元。
2. 集群层:集群层是由多个节点组成的集合,通常通过某种方式进行管理和调度,提供统一的数据服务。
集群层是分布式数据存储技术的重要组成部分。
3. 副本层:副本层是指数据的备份机制,通过将数据复制到多个节点上,实现数据的备份和容错。
基于云计算的路径规划系统设计与实现云计算的兴起为各行业带来了巨大的变革和发展机遇。
路径规划系统作为一种常见的应用,也可以通过云计算技术得到进一步的优化和改进。
本文将探讨基于云计算的路径规划系统的设计与实现。
一、引言路径规划系统在现代社会中有着广泛的应用,比如交通导航、物流配送等方面。
而传统的路径规划系统存在着效率低、计算量大等问题,这时候云计算技术的引入就可以很好地解决这些问题。
二、系统架构设计基于云计算的路径规划系统的架构设计主要包括云平台、数据存储和处理、路径规划算法等几个模块。
1. 云平台:选择一个可靠的云计算平台作为系统的基础设施,如阿里云、亚马逊云等。
通过云平台可以提供强大的计算和存储资源,同时具备高可用性和可扩展性。
2. 数据存储和处理:路径规划系统需要处理大量的地理数据,如地理坐标、地图数据等。
这些数据可以存储在云平台提供的分布式数据库中,比如NoSQL数据库。
同时,可以使用云计算平台提供的数据处理服务,如Hadoop、Spark等,用于对地理数据进行高效的处理和分析。
3. 路径规划算法:路径规划的核心是算法的设计与实现。
可以选择传统的路径规划算法,如Dijkstra算法、A*算法等,也可以结合云计算技术提出新的路径规划算法,如并行计算、分布式计算等。
通过云计算平台提供的计算资源,可以加速路径规划的过程,提高系统的响应速度。
三、系统实现基于云计算的路径规划系统的实现主要包括以下几个步骤:1. 数据准备:收集和整理地理数据,包括地图数据、道路网络数据等。
将这些数据存储在云平台的数据库中,并建立索引,以提高数据的检索效率。
2. 路径规划算法设计与实现:选择适合的路径规划算法,并根据实际需求进行必要的改进和优化。
利用云计算平台提供的计算资源,对算法进行并行计算或分布式计算,以提高路径规划的效率和准确性。
3. 系统集成与优化:将路径规划算法和数据处理模块进行集成,搭建完整的系统框架。
通过测试和优化,确保系统能够在大规模数据和高并发情况下正常运行,并具备一定的容错和恢复能力。
H o o p分布式文件系统架构和设计Hessen was revised in January 2021Hadoop分布式文件系统:架构和设计引言云计算(cloud computing),由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。
在此过程中被服务者只是提供需求并获取服务结果,对于需求被服务的过程并不知情。
同时服务者以最优利用的方式动态地把资源分配给众多的服务请求者,以求达到最大效益。
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。
它和现有的分布式文件系统有很多共同点。
但同时,它和其他的分布式文件系统的区别也是很明显的。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。
HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
一前提和设计目标1 hadoop和云计算的关系云计算由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。
针对海量文本数据处理,为实现快速文本处理响应,缩短海量数据为辅助决策提供服务的时间,基于Hadoop云计算平台,建立HDFS分布式文件系统存储海量文本数据集,通过文本词频利用MapReduce原理建立分布式索引,以分布式数据库HBase存储关键词索引,并提供实时检索,实现对海量文本数据的分布式并行处理.实验结果表明,Hadoop 框架为大规模数据的分布式并行处理提供了很好的解决方案。
2 流式数据访问运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。
HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。
比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。
3 大规模数据集运行在HDFS上的应用具有很大的数据集。
HDFS上的一个典型文件大小一般都在G字节至T字节。
云计算毕业设计云计算是近年来蓬勃发展的一项核心技术,其在各个领域都有广泛的应用。
作为一名毕业生,选择云计算作为毕业设计的题目是具有挑战性和现实意义的。
本文将探讨云计算毕业设计的一些思路和方向,以提供给读者一些建议。
第一部分:引言云计算是一种通过网络提供计算资源和服务的技术,它可以实现按需获取、快速扩展和按使用量付费等功能。
随着互联网、物联网、大数据等技术的快速发展,云计算得到了广泛的应用和推广。
选择云计算作为毕业设计的题目,既可以让自己深入学习云计算的原理和技术,同时也能结合实际应用进行设计和开发。
第二部分:云计算毕业设计的思路和方向1. 云存储系统设计:针对现有的云存储系统,可以考虑对其进行改进和优化。
例如,设计一种高可用性的云存储系统,使得用户可以方便地存储和访问数据,并且能够快速恢复系统故障。
还可以考虑在云存储系统中引入数据去重技术,以节省存储空间。
此外,针对大规模数据的云存储系统,如何提高数据的传输速度和安全性也是一个研究方向。
2. 云计算平台设计:设计一个功能完善、易于使用的云计算平台是另一个研究方向。
通过对云计算平台的深入研究和实践,可以设计出一种满足不同用户需求的云计算平台。
例如,可以设计一个面向企业用户的云计算平台,提供弹性计算能力和可靠的数据存储,帮助企业快速部署和管理应用程序。
3. 云计算安全性问题研究:云计算安全性一直是一个备受关注的问题。
设计一个针对云计算安全性的研究项目可以有助于提高云计算系统的安全性。
可以从数据隐私保护、身份认证、访问控制等方面入手,研究在云计算环境下如何保护用户的数据安全和隐私。
4. 云计算性能优化研究:云计算平台通常需要处理大量的计算任务,如何提高云计算平台的性能是一个重要的研究方向。
可以从资源调度、任务划分、负载均衡等方面入手,设计一种能够提高云计算性能的优化算法。
第三部分:云计算毕业设计的开发环境和工具云计算毕业设计涉及到大量的编程和实验工作,因此需要选择适当的开发环境和工具来进行开发和测试。
基于云计算的大数据分析平台设计与实现在当今信息时代,数据已经成为企业、机构甚至个人发展的重要资产和资源。
面对爆炸式增长的数据量,传统的数据处理方式已经无法胜任。
这时,云计算和大数据分析技术的应用就是一个不错的选择。
一、云计算和大数据分析技术云计算是一种将计算能力、存储、网络等资源通过互联网的方式,以服务的形式提供给用户的一种技术模式。
它可以帮助企业、机构和个人在数据存储、计算和应用开发等方面提高效率、降低成本,并且可以根据业务需要灵活调整资源使用,提高IT响应速度。
而大数据分析技术是利用计算机和相关数据处理工具等手段,通过对海量数据的收集、处理、分析和挖掘,从中发现有用的知识和价值,为企业的战略决策提供支持。
它可以通过对海量数据的分析和挖掘,发现市场趋势、顾客需求、产品质量、成本效益等信息,从而更好地提高产品质量,降低成本,实现盈利。
云计算和大数据分析技术结合,可以帮助企业更好地应对海量数据处理需求,提高数据处理效率和业务响应速度,进而更好地支持企业发展战略。
二、基于云计算的大数据分析平台设计云计算和大数据分析技术已经得到广泛应用,各大厂商也推出了许多云计算和大数据分析平台。
本文将着重讨论基于云计算的大数据分析平台的设计和实现。
1、系统架构设计基于云计算的大数据分析平台的系统架构设计需要满足以下几个核心特点:(1)可扩展性:具有支持水平和垂直扩展的能力,能够根据业务需求动态调整计算和存储资源。
(2)高可用性:系统需要满足高可用要求,以确保业务连续性。
(3)安全性:系统需要提供多层次的安全保护机制,从网络、操作系统、中间件和应用程序等层面实现数据的安全保护。
2、数据存储及管理在大数据分析平台的设计中,数据存储及管理是非常关键的一个环节。
一般来说,需要对海量数据进行聚合、清洗、过滤和预处理等操作,以便更好地进行数据分析和挖掘。
在数据存储方面,可以采取分布式数据库、Hadoop集群等方案。
在数据管理方面,可以采取数据仓库建设、数据虚拟化技术等手段,以方便数据的查询和分析。
基于Hadoop分布式爬虫设计综述摘要:由于Internet规模不断扩大,包罗万象的信息资源被连接在一起,形成了一个广阔宏大的信息空间"在这个空间中,存在着海量的信息,如何快速高效和安全地让网络用户在如此浩瀚的信息海洋之中找到并获取自己所需的资源,是当前互联网发展的最大挑战之一。
如今,云计算已成为当前的重要趋势之一。
本文主要阐述在Hadoop分布式文件系统HDFS以及分布式计算框架MapReduce的基础上开发的分布式搜索引擎的爬虫设计相关技术、原理、流程图。
关键词:云计算分布式爬虫Hadoop 搜索引擎1 引言随着搜索引擎的发展,搜索引擎所采用的技术也随之变得丰富和多样化,能够适应不同搜索用户以及不同搜索目的的需要。
目前,搜索引擎的性能指标主要有三个:首先考虑的是规模的大小,只有规模达到一定的数量级,用户搜索结果的符合度才能够达到满足不同用户的需求程度;其次是性能,搜索引擎的网络蜘蛛必须在一个较短的时间内完成对目标网络的信息搜索,同时,能够在用户可容忍的时间段内,完成搜索结果的反馈;最后是搜索的质量,能够去掉信息重复的网页,对一些无用信息进行过滤,能够准确返回用户想要的结果。
如何从庞大的资料库中找到正确的资料,被公认为是下一代搜索技术的竞争要点"要对海量的信息进行检索,单单依靠单台计算机的处理能力远远不够,即使硬件的发展速度很快,但是根本赶不上信息的增长速度。
而若采用集群计算机实现,虽然可以解决处理速度问题,但由于从网络的整体上看,该集群仍是一个结点,会严重受制于网络带宽,因此,需要采用多台计算机进行分布式协同处理"。
分布式搜索引擎是通过网络把大范围的分布、异构数据集联合起来,形成一个逻辑整体,为用户提供分布式的信息检索服务。
同传统搜索引擎相比,分布式搜索引擎有以下优点:1)各检索服务器之间协同工作,每个服务器只搜索自身自治区域内的信息资源,彼此之间只传递搜索结果信息,加快了检索速度,减轻网络及各站点的负担;2)与网络资源本身的分布式特性相适应,增加搜索服务器方便,有良好的可扩展性;3)索引信息化分到各个数据库中,使得各索引数据库规模小,易于管理,缩短查询响应时间。
云存储研发工程师岗位面试题及答案1.请解释什么是云存储,并给出一个常见的使用场景。
答案:云存储是将数据存储在由第三方托管的远程服务器上,而不是在本地硬件上。
这允许数据在多个设备之间轻松共享和访问。
常见使用场景包括企业备份数据,以便在硬件故障时进行恢复。
2.您能描述一下分布式存储的基本概念吗?答案:分布式存储是一种使用多台独立的连接存储设备来存储数据的方法。
它可以增加可用性、可扩展性和容错能力。
例如,HadoopHDFS就是一种常见的分布式存储系统。
3.请解释CAP定理在分布式系统中的意义。
答案:CAP定理指出,分布式存储系统不能同时满足一致性(C)、可用性(A)和分区容忍性(P)。
在网络分区或故障发生时,系统必须在一致性和可用性之间做出权衡。
例如,Cassandra选择牺牲一致性以获得更高的可用性和分区容忍性。
4.什么是对象存储?与块存储和文件存储有何不同?答案:对象存储将数据作为对象存储,每个对象包括数据、元数据和唯一标识符。
与块存储(将数据存储为固定大小的块)和文件存储(使用目录结构)不同,对象存储更适合大规模非结构化数据。
例如,AmazonS3就是一个广泛使用的对象存储服务。
5.请描述在实现分布式事务时,两阶段提交(2PC)与三阶段提交(3PC)的主要区别。
1/ 19答案:两阶段提交(2PC)包括准备阶段和提交阶段。
在准备阶段,协调者询问所有参与者是否准备提交;在提交阶段,根据参与者的反馈决定提交或中止事务。
三阶段提交(3PC)增加了超时机制和预提交阶段,以减轻协调者故障的问题。
这使得3PC在某些故障场景下更加健壮。
6.在分布式存储系统中,一致性哈希有什么作用?答案:一致性哈希用于在分布式环境中均匀分配数据。
通过使用一致性哈希,可以确保当添加或删除节点时,只有少部分数据需要重新分配。
这提高了可扩展性并减小了维护过程中的影响。
例如,在分布式缓存如Memcached中,一致性哈希有助于高效地分布数据。
第29卷第5期 2014年10月 郑州轻工业学院学报(自然科学版)
JOURNAL OF ZHENGZHOU UNIVERSITY OF LIGHT INDUSTRY(Natural Science) Vo1.29 No.5
Oct.2014
文章编号:2095—476X(2014)05—0060—04
基于Hadoop 的云存储系统的设计与研究 刘姝 (中原工学院计算机学院,河南郑州450007) 摘要:针对海量数据的存储和处理,设计了一个基于Hadoop的云存储系统.该系统在分布式文件系 统和MapReduce编程模型2个核心技术的基础上建立基于Hadoop的云存储模型,优化了存储方式, 提高了集群中网络带宽和磁盘的利用率,同时MapReduce编程框架的设计使系统拥有更强的计算 能力.该系统可通过LinuX集群技术搭建Hadoop平台,进行测试和分析.应用实践表明,该系统具有 低成本、高效率、易扩展和安全可靠等特点,能稳定高效地满足海量数据的处理要求. 关键词:云存储;Hadoop;分布式并行计算;HDFS;MapReduce 中图分类号:TP311 文献标志码:A DOI:10.3969/j.issn.2095—476X.2014.05.014
Design and research of cloud storage system based on Hadoop UU Shu (College 0厂Computer Science,Zhongyuan University Technology,Zhengzhou 450007,China)
Abstract:Aiming at the problem of mass data storage and processing,a cloud storage system based on Ha- doop was designed.The system established a cloud storage model on the basis of studying the two core tech— nologies of Hadoop including Hadoop distributed file system and programming model MapReduce.The sys- tern optimized the computer storage mode,and increased the efficiency of the network bandwidth and disk in the cluster.At the same time,the MapReduce programming framework design made the system have higher performance of computing ability.Through testing and analysis of Hadoop platform using Linux clus— ter technology,the results showed that the system had the characteristics of low cost,high efficiency,easy extension,safty and reliability,and could meet the requirement of the mass data processing stably and effi— ciently. Key words:cloud storage;Hadoop;distributed parallel computing;HDFS;MapReduce
0 引言 随着网络技术的快速发展,信息资源日益膨 胀,这些信息来自电信、金融、教育、医疗等多个行 业,不仅包含文字数据,而且涵盖了图片、音频、视 频等各种多媒体数据.传统的存储方式硬件要求 高,编写并行程序困难,已经无法满足以指数级速 度增长的数据存储与处理需求. 2006年Google公司率先提出了云计算概念¨ , 这是一种创新的计算商业模式,它融合并发展了分 布式计算、网格计算、并行处理、网络存储以及虚拟 化和负载均衡等多种计算机技术和网络技术.云计 算中的“云”是一个包含硬件和软件的虚拟化资源 池,这个资源池在网络的平台上为用户提供各种服 务,而这些服务建立在各种标准和协议之上,用户 可以随时随地申请所需的服务,在资源池中各种资
收稿日期:2014—04—25 基金项目:河南省科技攻关项目(132102310284) 作者简介:刘妹(1975一),女,江苏省兴化市人,中原工学院讲师,硕士,主要研究方向为数字资源管理、网络安全 第5期 刘姝:基于Hadoop的云存储系统的设计与研究 源协同工作,使存储和计算海量数据成为可能. Hadoop是Apache组织下的一个开源项目,是 参考了Google公司云计算3大核心技术GFS,Ma. preduce和Bigtable的设计思想开发的一个分布式 云计算平台 J.该平台是一个用JAVA实现的进 行数据处理和数据分析的分布式并行编程框架,部 署到由大量低廉的硬件设备组成的计算机集群上, 主要专注于海量数据的存储和计算,不仅可以处理 结构化数据、日志文件以及点击流数据,还可以管 理类似Facebook的非结构化文本数据 J.本文对 Hadoop的主要组成部分分布式文件系统HDFS和 编程模型MapReduce进行深入研究,拟提出一个基 于Hadoop的云计算存储模型,以稳定高效地满足海 量数据的处理要求. 1系统分析与设计 1.1基于Hadoop的云存储模型 根据对Hadoop的分布式文件系统与计算模型 的研究,提出了基于Hadoop的云存储模型,如图1 所示. 图1 Hadoop云存储模型 模型包括1个主节点Master和若干个子节点 Slave.Master的工作通常由性能较高的服务器来完 成,主要是分布式文件系统的命名空间的维护,并 通过JobTracker管理其他机器上的TaskTracker,为 其分配相应的Map和Reduce任务.每一个子节点 不仅是存储数据节点,也是计算节点,因此将Datan— ode和TaskTracker的功能集中在1台Slave完成.为 了避免当Master发生故障造成系统服务中断甚至 完全瘫痪,设置了1台Secondary Master作为备份主 节点. 在应用该模型的过程中,将系统需要的原始数 据存储到分布式文件系统中,在Master的Namenode 中建立文件系统的索引目录以管理分别存储于不 同Datanode中的数据块.客户向系统提交任务请 求,提交的任务实际上是一组自定义的API,即用户 自定义的Map和Reduce函数.JobTracker负责向所 有的Slave分发Map函数和Reduce函数,依照Ma— pReduce的执行过程产生最终结果. 1.2系统架构设计 整个云存储系统建立在Hadoop存储模型基础 之上,由1台Master和多台Slave组成,将原始的数 据资源分布式存储于HDFS中,HDFS支持批量处 理,同时在Hadoop的计算模型中支持移动计算. Map与Reduce函数并行,执行完成查询与计算任 务.该架构可提高系统吞吐量并降低网络传输压力. 系统平台整体架构如图2所示.客户端通过 Web浏览器和一些应用软件向系统提出各种请求, 系统响应客户端的请求,调用相关的应用服务,主 要包括访问控制、数据检索、资源管理、安全备份、 Web服务等.在涉及到庞大的数据量和复杂计算的 情况下,使用1台服务器无法满足高效率的要求,因 此和Hadoop平台相结合完成用户的请求,并将处理 的结果返回给客户端.该架构具有可扩展性,可以 将关系数据库整合进来,通过去异构化操作为用户 透明地提供各种存储和应用服务.
I 囊 -
圈 应用服务器
}Master Slaves
i 数据库服务器 黑
备份服务器 曩 // :
Web服务器
图2 Hadoop云存储系统平台整体架构 1.3系统功能设计 从云存储系统需要实现之功能的角度考虑,整 个体系自下而上包括3层结构,分别是基础设施管 理层、数据存储管理层和应用接口层,如图3所示. 基础设施管理层位于整个功能框架的最底层, 是云存储的基础.在该层上将各种不同类型的存储 设备进行连接,形成一个统一的存储设备管理体 系,并且利用HDFS实现海量数据的存储虚拟化,同 ・62・ 郑州轻工业学院学报(自然科学版) 2014年 客户端浏览器 l { 圆圆圈[AP蜘llWe堋到I
数据处理模块 圆圆园圈
数据存储 Hadoop 管理层 回圈
系统支撑模块 I负载平衡II事务服务l1日志管理II容错机制I ’ ___________・・・_一’ ______________・___,’ _________--.--_ ’ ______--__-_.___一
基础设施 函 网网l
管理层 存储介质(NAS,ISCSI,FC) I
图3 系统功能结构图 时结合服务器集群虚拟计算和网络进行整合,形成 一个动态化的资源池,从而实现了所有资源的集中 管理以及集群的状态监控和维护升级,大大提高了 资源共享率及扩展性. 数据存储管理层是整个系统的核心部分,实现 了底层存储和上层访问的无缝联接.在该层中采用 了分布式文件系统、分布式并行计算和Linux集群 等技术,可以并行处理海量数据,同时还提供了系 统支撑模块,保证了系统的正常运行.系统支撑模 块通过负载平衡、日志管理和容错机制等为实现分 布式管理提供了支撑服务.负载平衡用来存储集群 中各节点的负载均衡,并进行容错管理.日志管理 用来记录软件运行过程中每一点的状态、发生的重 要事件以及系统的运行轨道.此外,还需对集群的 远程配置、系统状态监测和维护提供服务.在系统 支撑模块的保证下,依据Hadoop平台提供的相关组 件和技术,可以实现对海量数据的并行加载和并行 查询等功能,同时为了提高系统的安全性,加强了 对存储和传送数据过程中的数据加密以及对数据 存储的备份管理和备份恢复. 应用接口层根据需要的实际业务类型以及提 供的不同服务,开发出相关的应用程序,并与底层 集群相联接,集群接收到客户端提交的数据并进行 处理,将计算结果通过服务器返回给客户端.用户 可以在客户端通过简便友好的操作界面存储和处 理海量数据;也可以基于算法库中的公共API编写 程序,扩展应用系统的功能.为了增强系统的扩展 性和透明性,在访问数据库时需要对数据源进行 屏蔽. 2系统搭建与性能测试 2.1 Hadoop集群搭建 1)环境配置.系统采用6台PC机搭建起底层 Hadoop集群.每台机器的操作系统为CentOS 5.5, JAVA环境为jdk1.6,Hadoop版本为0.20.2. 选择1台机器作为集群的主节点Master,担当 起Namenode及JobTracker的任务,其他几台机器作 为从节点Slave,完成Datanode与TaskTracker的功 能.每台PC机的IP地址与名称如下: 192.168.0.1 Nodel 192.168.0.2 Node2 192.168.0.3 Node3 192.168.0.4 Node4 192.168.0.5 Node5 192.168.0.6 Node6 要确保系统正确地解析各主机名与IP地址,需 要对各机器进行相应的配置.其中Nodel代表Mas— ter,在该机器的/etc/hosts文件中添加集群内部所有 机器对应的IP地址和主机名.Node2—6代表Slave, 只需要在/etc/hosts文件中添加本机和Master的IP 地址及主机名. 2)建立SSH免密码登录.在Hadoop集群中,不 同机器之间的通信是通过SSH来实现的,对SSH进 行配置的目的是保证网络的畅通,在机器之问通信 执行指令时不再需要输入密码,从而建立SSH受信 证书.在主节点利用ssh—keygen创建Master的密 钥对. ¥ssh—keygen—t rsa—P ¥cp/home/.ssh/id—rsa.pub>>home/.ssh/ authorized——keys 将Master上创建并保存的密钥对通过scp命令 拷贝到Slave相同的目录中,即可实现集群中机器 之间的SSH免密码登录. 3)搭建Hadoop平台.①对conf/hadoop—env.sh 文件中的2个环境变量JAVA—HOME和HADOOP— HOME进行设置,其中JAVA—HOME设置为安装 JAVA的根目录. ②编辑Hadoop的配置文件core—site.xml,hdfs— site.xml与mapred—site.xm1.其中前2个文件与 HDFS的配置相关,主要是设置Namenode的IP端