解读:基于Hadoop的大规模数据处理系统

  Hadoop的组成部分

  Hadoop是Google的MapReduce一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。

  Hadoop主要由HDFS、MapReduce和HBase等组成。具体的组成如下图:

  Hadoop的组成图

  1. Hadoop HDFS是Google GFS存储系统的开源实现,主要应用场景是作为并行计算环境(MapReduce)的基础组件,同时也是BigTable(如HBase、 HyperTable)的底层分布式文件系统。HDFS采用master/slave架构。一个HDFS集群是有由一个Namenode和一定数目的 Datanode组成。Namenode是一个中心服务器,负责管理文件系统的namespace和客户端对文件的访问。Datanode在集群中一般是一个节点一个,负责管理节点上它们附带的存储。在内部,一个文件其实分成一个或多个block,这些block存储在Datanode集合里。 Namenode执行文件系统的namespace操作,例如打开、关闭、重命名文件和目录,同时决定block到具体Datanode节点的映射。 Datanode在Namenode的指挥下进行block的创建、删除和复制。Namenode和Datanode都是设计成可以跑在普通的廉价的运行 Linux的机器上。HDFS采用Java语言开发,因此可以部署在很大范围的机器上。一个典型的部署场景是一台机器跑一个单独的Namenode节点,集群中的其他机器各跑一个Datanode实例。这个架构并不排除一台机器上跑多个Datanode,不过这比较少见。

  HDFS体系结构图

  2. Hadoop MapReduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上TB级别的数据集。

  一个MapReduce作业(job)通常会把输入的数据集切分为若干独立的数据块,由 Map任务(task)以完全并行的方式处理它们。框架会对Map的输出先进行排序,然后把结果输入给Reduce任务。通常作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。

  Hadoop MapReduce处理流程图

  3. Hive是基于Hadoop的一个数据仓库工具,处理能力强而且成本低廉。

  主要特点:

  存储方式是将结构化的数据文件映射为一张数据库表。

  提供类SQL语言,实现完整的SQL查询功能。

  1.可以将SQL语句转换为MapReduce任务运行,十分适合数据仓库的统计分析。

  不足之处:

  1.采用行存储的方式(SequenceFile)来存储和读取数据。

  2.效率低:当要读取数据表某一列数据时需要先取出所有数据然后再提取出某一列的数据,效率很低。

  3.占用较多的磁盘空间。

  由于以上的不足,查礼博士介绍了一种将分布式数据处理系统中以记录为单位的存储结构变为以列为单位的存储结构,进而减少磁盘访问数量,提高查询处理性能。这样,由于相同属性值具有相同数据类型和相近的数据特性,以属性值为单位进行压缩存储的压缩比更高,能节省更多的存储空间。

  行列存储的比较图

  HBase是一个分布式的、面向列的开源数据库,它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。HBase使用和 BigTable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列,一个或多个列组成一个 ColumnFamily,一个Fmaily下的列位于一个HFile中,易于缓存数据。表是疏松的存储的,因此用户可以给行定义各种不同的列。在 HBase中数据按主键排序,同时表按主键划分为多个HRegion。

  HBase数据表结构图

【推荐阅读】:1.基于Hadoop系统的MapReduce数据流优化

2.Hadoop技术中心

3.在云中使用 MapReduce 和负载平衡

时间: 2024-10-24 19:07:58

解读:基于Hadoop的大规模数据处理系统的相关文章

基于Hadoop的视频监控系统的设计与实现

基于Hadoop的视频监控系统的设计与实现 内蒙古大学  梁师师 随着平安中国项目的深入,公众对视频监控的需求越来越强烈.摄像头等视频采集设备的清晰度不断提高,监控器的个数不断增加,对视频处理的需求不断提高,这与传统的网络视频监控系统架构发生矛盾.而日益兴起的云计算为视频监控开辟了一条新的道路,云视频监控系统满足了大数据计算.存储的要求,解决了传统的视频监控系统的缺陷.本文的工作正是在云计算技术基础上搭建大规模高清视频监控系统.本文首先简单介绍视频监控技术的发展过程和目前视频监控技术遇到的瓶颈问

云队列:一个基于Hadoop的大规模消息基础平台

云队列:一个基于Hadoop的大规模消息基础平台 东华大学 史冬冬 本文基于从当前分布式系统消息通信的需求出发,并结合Hadoop云计算平台,提出了一个面向Internet规模的.高性能和高可靠的消息队列服务平台--云队列(Cloudqueue).通过云队列平台所提供的消息服务实现异步通讯.存储转发.可靠传输.跨互联网等特性,云队列可以在云计算时代为应用程序提供高性能.高可靠.大容量的面向互联网的消息传递服务. 文章从现实需求出发,在分析了消息中间件的相关基础知识和Hadoop关键技术的基础之上

基于Hadoop的云盘系统客户端技术难点之一 上传和下载效率优化

作者:张子良  声明:版权所有,转载请注明出处 一.概述 基于任何平台实现的云盘系统,面临的首要的技术问题就是客户端上传和下载效率优化问题.基于Hadoop实现的云盘系统,受到Hadoop文件读写机制的影响,采用Hadoop提供的API进行HDFS文件系统访问,文件读取时默认是顺序.逐block读取:写入时是顺序写入. 二.读写机制 首先来看文件读取机制:尽管DataNode实现了文件存储空间的水平扩展和多副本机制,但是针对单个具体文件的读取,Hadoop默认的API接口并没有提供多DataNo

基于Hadoop的云盘系统客户端技术选型说明

伴随云计算技术的发展,云盘系统不断涌现,百度.360.金山等都推出了各自的云盘产品,而云盘存储的模式也越来越被用户所接受,也有越来越多的公司跃跃欲试,想在云存储领域大展拳脚,有一番作为.但是开源Hadoop平台实现语言Java和操作系统Linux的限制,Windows用户桌面版云盘客户端的开发成为了一道不可逾越的屏障. 传统桌面软件开发最适合的语言是C/C++体系(不排斥非主流VB.Delphi.C#,有兴趣的可自行研究),云盘系统的客户端也是针对最广大的Windows桌面用户设计,最基本的要求

基于Hadoop的云盘系统客户端技术难点之二 HDFS文件访问控制

作者:张子良 版权所有,转载请注明出处 一.概述 Hadoop开源技术框架在实际业务应用中,其早期的安全机制饱受诟病,具体到HDFS应用方面的问题,主要包括以下几个方面: 1.用户到服务器的认证问题 (1)Namenode上没有用户认证:用户只要知道NameNode服务地址和端口信息,就可以访问HDFS,并获取文件namespace信息. (2)Datanode上没有认证机制:Datanode对读入输出并没有认证,导致如果客户端知道Blockid,就可以任意的访问Datanode上的Block数

基于Hadoop的云盘系统客户端技术难点之三 小文件存储优化

作者:张子良 版权所有,转载请注明出处. 一.概述 首先明确概念,这里的小文件是指小于HDFS系统Block大小的文件(默认64M),如果使用HDFS存储大量的小文件,将会是一场灾难,这取决于HDFS的实现机制和框架结构,每一个存储在HDFS中的文件.目录和块映射为一个对象存储在NameNode服务器内存中,通常占用150个字节.如果有1千万个文件,就需要消耗大约3G的内存空间.如果是10亿个文件呢,简直不可想象.这里需要特别说明的是,每一个小于Block大小的文件,存储是实际占用的存储空间仍然

基于Hadoop的广域测量系统数据处理

基于Hadoop的广域测量系统数据处理 曲朝阳: 朱莉: 张士林 为解决目前广域测量系统(WAMS)海量数据处理中存在的数据冗余.处理效率低等问题,设计并实现了一个基于Hadoop的WAMS数据处理云计算平台.首先,给出了平台的体系结构.其次,设计了基于Hadoop分布式文件系统(HDFS)存储的WAMS海量数据加载方法和利用MapReduce模型实现多个文件数据的并行抽取.转换和加载(ETL)操作流程.提出了结合MapReduce的MPApriori数据挖掘算法,用于高效地挖掘出连锁故障时各站

大数据处理系统关键层次架构

在数据存储层,还有很多类似的系统和某些系统的变种,这里,我仅仅列出较为出名的几个.如漏掉某些重要系统,还请谅解. 以下是对上图中各层次架构的说明 一.数据存储层 宽泛地讲,据对一致性(consistency)要求的强弱不同,分布式数据存储策略,可分为ACID和BASE两大阵营. ACID是指数据库事务具有的四个特性:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).ACID中的一致性要求比较强,事务执行的结果必须是使数据

基于Hadoop用户行为分析系统设计与实现

基于Hadoop用户行为分析系统设计与实现 北京交通大学  郝增勇 本课题在大数据背景下,针对不能全面准确分析网络用户行为的问题,利用网络安全开发包Libnids和分布式平台Hadoop关键技术,重点研究设计并开发出基于Hadoop的用户行为分析系统.本系统实现了海量数据包抓取和分布式存储.TCP重组和应用层HTTP行为分析等功能,不仅有助于服务提供者根据用户行为特征提供更好的推荐服务,而且为网络相关部门对网络舆论进行合理的监控奠定有效的技术支撑.本文采用了基于Hadoop的用户行为分析方法,首