一、高度可靠
Hadoop系统采用云架构,底层数据被分块存储在不同的存储节点上,数据采用*的1:1容错机制进行容错,可在任意损坏一个存储服务器节点的情况下实现数据完整可靠,系统对外存储访问服务不间断
二、性能优异
Hadoop系统采用分布式并行计算技术,将海量数据的计算处理转化为各个存储节点上并行读写和计算,这样减少了网络的带宽使用,提高了数据的处理速度。同时随着处理节点数目的增多,整个系统的计算性能将呈线性增长
三、海量存贮
Hadoop平台所依赖的数据存储层云数据库容量仅受限于卷管理服务器内存,可支撑的容量接近无限
四、通用易用
Hadoop系统提供专用的API接口,供开发人员调用
五、快速高效
Hadoop平台算法库采用了分布式并行算法能够在较短的时间内完整各种算法,同时随着机器的增加系统性能线性增长
Hadoop架构:
Hadoop 由许多元素构成。其部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是MapReduce引擎,该引擎由JobTrackers和TaskTrackers组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库HBase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心
HDFS
对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的。这些节点包括NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个NameNode,因此这是 HDFS 的一个缺点(单点失败)。
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。
MapReduce
主要功能:
数据划分和计算任务调度:
系统自动将一个作业(Job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(Task),并自动调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(Map节点或Reduce节点),同时负责监控这些节点的执行状态,并负责Map节点执行的同步控制。
数据/代码互定位:
为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分布存储的数据,这实现了代码向数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻找可用节点以减少通信延迟。
系统优化:
为了减少数据通信开销,中间结果数据进入Reduce节点前会进行一定的合并处理;一个Reduce节点所处理的数据可能会来自多个 Map节点,为了避免Reduce计算阶段发生数据相关性,Map节点输出的中间结果需使用一定的策略进行适当的划分处理,保证相关性数据发送到同一个 Reduce节点;此外,系统还进行一些计算性能优化处理,如对最慢的计算任务采用多备份执行、选完成者作为结果。
出错检测和恢复:
以低端商用服务器构成的大规模MapReduce计算集群中,节点硬件(主机、磁盘、内存等)出错和软件出错是常态,因此MapReduce需要能检测并隔离出错节点,并调度分配新的节点接管出错节点的计算任务。同时,系统还将维护数据存储的可靠性,用多备份冗余存储机制提高数据存储的可靠性,并能及时检测和恢复出错的数据。
HBase
即Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
Hadoop EcoSystem中的各层系统。其中,HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。
此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。
序号 | 实验科目 | 实验内容 |
实验一 | Hadoop实验 | Hadoop 生态系统平台的安装部署,包括 HDFS、 MapReduce、Yarn 与 MR2.0 HDFS 集群状态查看 MapReduce 示例程序运行、状态查看 |
实验二 | HDFS上机实验 | HDFS 分布式文件系统的常用命令操作与存储程序开发 用户管理、权限管理等 |
实验三 | MapReduce实验 | MapReduce 统计程序开发并运行 MapReduce API编程应用开发 |
实验四 | HBase实验 | 部署 HBase 分布式半结构数据管理平台 HBase 数据库运维 HBase 数据表操作以及HBase API调用应用开发 |
实验五 | Hive实验 | 部署 Hive 分布式数据仓库利用 Hadoop、HBase、Hive 平台协同存储、管理与分析处理平台部署 |