文档详情

基干Hadoop海量数据存储技术探究.doc

发布:2017-05-24约4.75千字共9页下载文档
文本预览下载声明
基于Hadoop的海量数据存储技术的研究   【摘要】 随着社会信息化程度的不断提高,传统的数据存储技术已经不能满足需求。本文基于Hadoop平台,对其海量存储技术进行了专门研究分析,从海量数据存储的容错性、可扩展性和延迟性、实时性、性能等四个方面对目前海量数据存储技术进行了分析评价 【关键词】 Hadoop 海量数据处理 分布式存储技术 引言 随着社会信息化程度的不断提高,互联网应用的多元化及快速发展,传统的数据存储技术在处理能力和存储容量的可扩展性已经不能完全满足需求。如今大数据时代下的海量数据存储出现了新的特点:(1)数据规模巨大,且增长快速。(2)访问并发程度高。(3)数据结构及处理需求的多样化。在线数据访问和离线数据分析的应用,对系统可靠性的要求也越来越高。在这种情况下,基于Hadoop的分布式存储技术应运而生 一、Hadoop概述 1.1 简介 随着海量数据的不断快速增长,各大公司纷纷对其相关技术进行研究。Google在开发了MapReduce、GFS和BigTable等技术之后,开源组织Apache模仿并发布了开源的Hadoop分布式计算框架和分布式文件系统 Hadoop是一个开源的分布式计算平台,其核心是分布式计算框架MapReduce和分布式文件系统HDFS,主要用于处理海量数据,能在大量计算机组成的集群中运行海量数据并进行分布式计算 1.2 体系结构 Hadoop主要设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架。经过多年的发展,逐步形成了其应用程序生态系统,以Hadoop2.x版本为例,其族群中包括很多子项目:分布式文件系统HDFS、分布式并行编程模型和程序执行框架MapReduce、资源管理器YARN、配置管理工具Ambari、分布式且按列存储的数据库Hbase、数据仓库Hive、数据流语言和运行环境Pig、数据挖掘Mahout、分布式且可用性高的协调服务ZooKeeper、关系型数据库同步工具Sqoop、日志收集工具Flume等,其中MapReduce和HDFS最重要,在核心层上提供了更高层的互补性服务。Hadoop2.x的项目结构如图1所示 MapReduce是一种简化并行计算的编程模型,用来解决大规模数据处理的问题。其主要思想是将需要自动分割执行的任务拆解成映射Map和简化Reduce的方式。Map主要负责把单个任务分解成多个任务,Reduce则负责把分解后的多任务处理结果进行汇总。MapReduce任务由一个JobTracker节点和多个TaskTracker节点控制。JobTracker主要负责和管理TaskTracker,而TaskTracker具体负责这些任务的并行执行 HDFS分布式文件系统可以和MapReduce编程模型很好地结合,用于存储海量数据。HDFS采用主从模式的结构,HDFS集群由一个名字节点NameNode和若干个数据节点DataNode所组成。NameNode是主服务器,主要负责管理文件系统的命名空间和客户端对文件的访问操作,而DataNode主要负责节点数据的存储 YARN是Hadoop 2.x中新引入的资源管理系统,它的引入使得Hadoop不再局限于MapReduce一类计算,而是支持多样化的计算框架。它由两类服务组成,分别是ResourceManager和NodeManager 二、海量数据存储技术研究 分布式文件系统HDFS是Hadoop的核心技术之一,是基于Hadoop的分布式存储架构中数据存储的基础。Hadoop2. x中HDFS体系结构如图2所示 接下来,本文基于Hadoop的海量数据存储技术,从容错性、可扩展性和延迟性、实时性以及性能这4个方面对海量数据存储技术进行研究分析 2.1海量数据存储的容错性 目前海量数据存储系统中,为获取较高可靠性,通常使用完全的数据复制技术和磁盘冗余阵列技术(RAID)两种冗余容错方法。RAID 技术在传统关系数据库及文件系统中应用比较广发,但不太适用于NoSQL数据库及分布式文件系统 Hadoop使用HDFS存储海量数据。文件通常被分割成多个块进行存储,每个块至少被复制成三个副本存储在各个数据节点中。HDFS可以部署在大量廉价的硬件上,因此一个或多个节点失效的可能性很大,所以HDFS在设计时采用了多种机制来保障其高容错性,但有些也存在着一些问题 1、HDFS中NameNode NameNode是HDFS集群中的主节点,也是中心节点,它的可靠性直接关系到整个集群的可靠性。对于不同版本的Hadoop对此也有不同的处理机制。Hadoop1中只有一个NameNode节点,所以存在单节点故障问题,而在Hadoop2.x中通过H
显示全部
相似文档