Hadoop优势

Hadoop基于Java开发,为应用程序提供一组稳定可靠的API接口,实现具有高可靠性和良好扩展性的分布式系统,运行于大量廉价硬件设备组成的集群系统上。

分布式云计算:采用标准x86架构服务器大规模集群实现,每个模块都是一个离散的处理单元,使用并行计算技术,及群内各计算节点负载均衡,当某节点负荷过高时,可智能的将负荷转移到其他节点,并支持节点线性平滑扩展。

分布式云存储:采用x86服务器的本地硬盘实现,使用分布式文件系统,每份数据至少保存在3个节点,保证存储设计的性能和可靠性目标。

出于成本及开放性的要求,分布式云计算/存储在未来将部分取代传统小型机+盘阵存储。

大量普通服务器的集群可以比高性能主机提供更快的性能和更高的可靠性。

(1). 互联网规模的服务建设只能通过分区实现。单个服务节点的性能已然不够用,即使是解答一个小问题,都需要使用大量的数据,已超出单个节点的能力,更大的问题通常需要具有大量的并行性。

数据和计算可以被分布到大量的独立的节点上,进行分布式计算。

墨菲定律:有可能出错,总能出错。假设单个服务器的故障率是运行3年(1000天)有一次故障;对于一万个服务器,每天就有10个服务器出现故障。硬件并不能永久保证可靠;在规模扩大时,硬件已然会出错,虽然出错概率小一点。为了实现可靠性,数据需要被复制到多个节点,最好还可以异步跨数据中心进行数据复制。

分布式文件系统(HDFS):针对大规模数据的高容错性和高吞吐的分布式文件系统;它可以构建从几台到几千台由常规服务器组成的集群中,并提供高聚合输入输出的文件读写访问。

NameNode是一个中心服务器,负责管理文件系统的namespace和客户端对文件的访问;Datanode在集群中会有多个,一般是一个节点存在一个,负责管理其自身节点上它们附带的存储。在内部,一个大文件分成一个或多个block,这些block存储在Datanode集合里。Namenode执行文件系统的namespace相关操作,例如打开、关闭、重命名文件和目录,同时决定了Block到具体Datanode节点的映射。Datanode在Namenode的指挥下进行block的创建、删除和复制工作。

单一节点的Namenode大大简化了系统的架构。Namenode负责保管和管理所有的HDFS元数据,因而在请求Namenode得到文件的位置后就不需要通过Namenode参与而直接从Datanode进行。

分布式数据库(HBase):是一个分布式的、按列存储的、多维表结构的实时分布式数据库,它可以提供大数据量架构化和非结构化数据高速读写操作,为高速在线数据服务而设计。

支持每秒数万条级别的高速并发写入和高速查询;可扩展,数据自动切分和分布,可动态扩容,无需停机;数据存放在HDFS文件系统上,不会丢失;灵活的表结构,可动态增加或改变;面向列,可压缩,有效降低磁盘I/O,提高磁盘利用率。多维表,四个维度,其中三个维度可变,适合描述复杂嵌套关系。

 

图4 分布式文件系统体系架构图

 

并行计算框架(MapReduce):适用于大数据量处理的分布式框架,是为离线数据分析而设计,利用数据的并行性进行分布运算,而后汇总结果的计算框架。

将任务拆分、分布、汇总,开发人员只需要实现业务逻辑;分布任务自动失败重试,单个任务失败不会造成整个任务退出;和HDFS整合,使计算移到数据所在的节点运行。

ZooKeeper: 针对大型分布式系统的可靠协调系统。提供的功能包括:配置服务、名字维护、分布式同步、组服务等。可以维护系统配置、群组用户和命名等信息。

 

IDC预测全球的数据使用量2020年将增长44倍,达到35.2ZB。传统技术无法胜任大数据集的分析、管理和挖掘。基于Hadoop的分布式云计算/云存储方案将有效地支撑大量的结构化、非结构化数据以及结构可变的数据的导入、查询和统计,有效支持PB级别数据、支持万级每秒查询、支持该可用性系统、支持高效率统计分析。

 

2005 年Michael Stonebraker 在VLDB 上发表文章∀ OneSize Fits All: An Idea Whose Time Has Come and Gone# [ 2] 指出随着时代发展, 一种数据库可以统一所有应用的日子已经一去不复返, 未来商业数据库市场将分裂为各种独立的数据库引擎的集合。同年, 他开发出一种列存储的数据库原型系统∃ ∃ ∃ C- Store[ 3] 。C- Store 在优化查询、包含重复映射、利用密集压缩减少存储容量和分布式处理等方面有很大创新。特别是在查询性能上远远优于传统行存储数据库。

 

列存储是一种将数据库表的所有记录中相同字段的数据聚合存储的方式,并通过表中的列来存储与访问数据。

由上图可见行存储是将数据组织成多行, 这样可在操作中找到所有的列。缺点是操作时必须每次处理一整行,而不是只处理需要的列。优点是在处理相同对象的两列或多列查询时能够取得较快的速度, 同时可提高更新、插入和删除速度。

列存储是将数据组成多列存储在物理空间上, 这样在查询对象少数列的时候可以显著提高查询速度, 因为不需要一行行去读取对照从而找到需要的列。缺点是在对象需要频繁执行多列更新、插入和删除时速度不及行存储。

 

列存储技术作为一种新型存储技术, 在稳定性和性能上还存在较大的提升空间。在与传统关系数据库的行存储系统的对比中, 列存储在可伸缩性、稀疏性上都体现了较好的性能。随着数据规模的增长, 列存储的查询时间只是线性增长, 并无额外开销。

 

MapReduce能够被视为RDBMS的补充,MapReduce很适合处理需要分析整个数据集的问题,尤其是自主或即时(AdHoc)分析。MapReduce合适处理的数据被一次写入和多次读取的应用,而RDBMS更适合处理持续更新的数据集。

RDBMS中的数据都是被存储在定义好的表中,而表的定义都得符合数据库的语法和定义,但对于非结构化的数据,救得先将无结构的数据转化为有结构的数据后,才能在数据库中计算。MapReduce对于半结构化或者非结构化的数据非常适用,即MapReduce输入的键和值(Key-Value对,Key一般是这条记录在文件中的偏移量,Value则是这条记录的具体值)我们可以根据自己的需求来对Value进行处理,这些都是用户自己进行定义实现的。

MapReduce将程序员从考虑失败任务的情况下解放出来,当他检测到失败的map任务或者是reduce任务,它将在其他机器上安排重新的任务来执行这个失败的任务。甚至是当一个map或reduce任务在MapReduce预测的时间内没有完成这个任务,系统也会在其他机器上安排来重新执行这个任务。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值