文档介绍:Hadoop体系架构
HDFS简介
Map/Reduce模型
分布式列式数据库Hbase
*
Hadoop体系架构概述---备份
*
Hadoop概述
基于Apache基金会下的一个开源项目,致力于开发一个可靠的、大规模的分布式计算框架
用户可采用简单的计算模型在计算机集群下对大规模的数据进行分布式处理
设计理念之一是扩展单一的服务器为成千上万机器的集群,且集群中每一个机器同时提供本地计算力和存储力
Hadoop框架是在应用层检测和处理硬件失效问题,而不是依赖于硬件自身来维持高可用性。
在Hadoop框架集群中硬件失效被认为是一种常态,集群的高可用性服务是建立在整个集群之上的
*
Hadoop体系架构概述---备份
*
分布式文件系统(Hadoop Distributed File System,HDFS)
并行计算模型(Map/Reduce)
列式数据库(HBase)
数据仓库(Hive)
数据分析语言(Pig)
数据格式转化工具(Sqoop)
协同工作系统(Zookeeper)
数据序列化系统(Avro)
HDFS
(Hadoop Distributed File System)
Map/Reduce
(Job Scheduling/Execution System)
Hbase
(Column Database)
Pig
(Data Flow)
Hive
(SQL)
Sqoop
ETL Tools
BI Reporting
RDBMS
AvroSerialization)
Zookeeper(Coordination)
Hadoop整体框架
*
Hadoop体系架构概述---备份
*
Hadoop整体框架下特点
Hadoop主要在多节点集群环境下
以数据存储为基础
最大限度兼容结构化数据格式
以数据处理为目的
且其数据操作技术多样化
*
Hadoop体系架构概述---备份
*
HDFS概述-----基本特征
基于商用硬件环境
HDFS具有高容错性,并且被部署在廉价的硬件之上
HDFS向应用程序提供高的数据吞吐访问,适合于需要处理大规模海量数据集的应用
HDFS遵循部分POSIX协议要求,可以确保应用程序以流的方式访问文件系统数据
*
Hadoop体系架构概述---备份
*
HDFS的对现实应用环境的假设及其目标
硬件失效
流式数据访问
海量数据集
追加写入及文件同步
“移动计算比移动数据的代价小”
跨异构硬件和软件平台的可移植性
*
Hadoop体系架构概述---备份
*
1. 硬件失效。在HDFS中,硬件失效是常态而不是意外。一个真实的HDFS环境可能由上百或上千的机器组成,每一个机器存 储文件系统中的部分数据。集群中大量的机器都有极高的可能性会发生硬件故障而失效,这一真实的情况表明HDFS集群中的部分机器总是处于非正常工作状态。因此,检测机器失效并快速自动恢复发生故障的机器是HDFS的核心架构目标。
2. 流式数据访问。运行在HDFS之上的应用程序需要流式访问其数据集,这与运行在常规文件系统上的通用应用程序不一样。HDFS更适用于批量数据处理而不是用户的交互性使用。HDFS的重点是强调数据的高吞吐访问而不是数据的低延迟访问。POSIX规定了很多的硬性要求,这些要求对运行在HDFS上的应用程序而言是非必须的。但是,HDFS在几个关键领域引入了POSIX语义来提高数据的吞吐率。
3. 海量数据集。运行在HDFS上的应用是建立在海量数据集之上的。HDFS被设计来存储大文件,通常HDFS中的文件大小应该是千兆字节到兆兆字节。HDFS必须具备有很高的总数据带宽,其单一集群规模能够容乃成千上万的机器节点,并且一个HDFS集群能够支撑数以万计的文件量。
4. 追加写入及文件同步。大多数的HDFS应用都需要“一次写多次读”的文件访问模式。HDFS具有两种高级特征:刷新缓存(hflush)和文件添加(append)。刷新缓存使得一个未关闭文件的最后一个块对访问者可见的同时提供了读一致性和数据持久性。文件添加提供了在一个已关闭文件的末尾添加额外数据的机制。
5. “移动计算比移动数据的代价小”。应用所需要的计算如果在数据的附近实施效率更高,这一特性在数据量特别庞大时会显得更加明显。数据处理的本地化会最大限度地减少网络拥塞,并且提高系统整体的吞吐量。因此,在HDFS中假设移动计算至数据的存储位置比移动数据至应用程序运行位置更好。为了实现这一假设,HDFS为应用提供了接口来