一、简介
Apache的Hadoop的软件库是一个框架,允许对大量数据,使用简单的编程模型的计算机集群上的分布式处理。它的设计规模从单一服务器到数千台计算机,每个提供本地计算和存储。 而不是依靠硬件上提供高avaiability,库本身的目的是在应用层故障检测和处理,所以提供高度availabile服务的计算机集群上,其中每个可能会有失败。该项目包括以下子项目:
HDFS
对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。
NameNode
NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。注意,这里需要您了解集群架构。
实际的 I/O 事务并没有经过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode。当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应。这个 NameNode 还会通知其他将要接收该块的副本的 DataNode。
NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失。
DataNode
DataNode 也是一个通常在 HDFS 实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。
DataNode 响应来自 HDFS 客户机的读写请求。它们还响应创建、删除和复制来自 NameNode 的块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。
文件操作
可见,HDFS 并不是一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。同时也通知将要保存文件块副本的 DataNode。当客户机开始将临时文件发送给第一个 DataNode 时,将立即通过管道方式将块内容转发给副本 DataNode。客户机也负责创建保存在相同 HDFS 名称空间中的校验和(checksum)文件。在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储(在 EditLog 和 FsImage 文件)。
Linux 集群
Hadoop 框架可在单一的 Linux 平台上使用(开发和调试时),但是使用存放在机架上的商业服务器才能发挥它的力量。这些机架组成一个 Hadoop 集群。它通过集群拓扑知识决定如何在整个集群中分配作业和文件。Hadoop 假定节点可能失败,因此采用本机方法处理单个计算机甚至所有机架的失败。
二、优点
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
分享到:
相关推荐
《Hadoop大数据开发实战》教学教案—01初识Hadoop的内容主要涵盖了大数据的基本概念、核心需求以及Hadoop框架的初步介绍。在这个章节中,学习者将了解到大数据在当今信息化社会中的重要地位,并掌握大数据的基本特征...
#### 一、Hadoop概述 Hadoop是一个开源的、可靠的、可扩展的系统架构,主要用于利用分布式架构存储海量数据并实现分布式的计算任务。它由Apache基金会维护,旨在解决大规模数据处理的问题。对于刚接触Hadoop的新手...
【初识Hadoop之Hadoop安装】 Hadoop是Apache软件基金会的一个开源分布式计算框架,它设计用于处理和存储海量数据。Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,前者负责数据的分布式...
1. **安装Java**:Hadoop依赖于Java运行,因此首先需要在服务器上安装合适的Java版本。 2. **配置Hadoop环境**:包括设置`HADOOP_HOME`环境变量、配置`core-site.xml`、`hdfs-site.xml`等配置文件。 3. **格式化HDFS...
在IT领域,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。本资源"【IT十八掌徐培成】Hadoop第02天-01.Hadoop基础回顾-进程初识-webui.zip"聚焦于Hadoop的基础知识,特别是对Hadoop进程的理解以及如何...
第1讲:初识hadoop
### 初识Hadoop知识点详解 #### 一、大数据概览 **1. 大数据定义** - **概念解析**:大数据的概念并非特指某个具体的数据量级,而是指那些无法用传统的数据处理工具进行有效捕捉、管理和处理的数据集合。这种...
1. **第三章:初识Hadoop 2.x** - Hadoop概述:介绍Hadoop的起源、发展及在大数据处理中的地位。 - Hadoop生态系统:包括HDFS、MapReduce、YARN、HBase、Hive、Pig等组件的基本概念和作用。 - Hadoop 2.x的新特性...
《HadoopDemo:初识与实践》 HadoopDemo是一个专为Hadoop初学者设计的项目,它通过一系列实例展示了Hadoop的核心功能和使用方法。Hadoop,作为大数据处理领域的重要框架,以其分布式、容错性和扩展性著称,是理解和...
这些资料分为三个阶段,逐步深入,旨在帮助读者从初识到精通Hadoop的开发工作。 在《Hadoop开发者第一期》中,首先会介绍Hadoop的基础知识,包括它的起源、核心架构以及为什么它在大数据处理领域如此重要。这一部分...
第1章 初识Hadoop 数据!数据! 数据存储与分析 与其他系统相比 关系型数据库管理系统 网格计算 志愿计算 1.3.4 Hadoop 发展简史 Apache Hadoop和Hadoop生态圈 第2章 关于MapReduce 一个气象数据...
在本套“Hadoop大数据管理实验详细参考文档”中,我们涵盖了从初识Hadoop到进行实际操作的全过程,旨在帮助新手快速入门大数据处理的世界。Hadoop是一个开源框架,主要用于处理和存储海量数据,它的核心组件包括HDFS...
**Hadoop 2.x 入门指南** Hadoop 2.x 是一个开源的分布式计算框架,它是Apache Hadoop项目的最新版本,旨在提供高效、可...通过学习"0101+初识Hadoop+2.x.pdf"这样的文档,你可以逐步掌握这个领域的核心概念和技术。
第一章:初识Hadoop 第2章 关于MapReduce 第3章 Hadoop分布式文件系统 第4章 Hadoop I/O 第5章:MapReduce 应用开发 第6章:MapReduce 的工作原理 第7章:MapReduce 的类型与格式
第1章 初识Hadoop 数据!数据! 数据存储与分析 与其他系统相比 关系型数据库管理系统 网格计算 志愿计算 1.3.4 Hadoop 发展简史 Apache Hadoop和Hadoop生态圈 第2章 关于MapReduce 一个气象数据集 数据的格式 使用...
### 高级软件人才培训专家-Hadoop课程资料-1-初识Linux #### 知识点一:操作系统概述 - **定义与作用**:操作系统(Operating System, OS)是一种系统软件,它作为用户与计算机硬件之间的接口,负责管理和协调...
1. **初识Hadoop**:讨论为何学习Hadoop,Hadoop与云计算和大数据的关系,所需基础知识,以及学习环境。这将帮助学生理解Hadoop的背景和应用场景。 2. **Hadoop基础知识**:涵盖Hadoop的简介、版本演进、HDFS、...
1. 初识HADOOP HADOOP最初由Apache软件基金会开发,是大数据处理领域的核心工具。它基于Google的MapReduce计算模型和GFS(Google文件系统)的理念,为海量数据的处理提供了高效、可靠的解决方案。HADOOP的设计目标...
六、hadoop学习笔记之一:初识Hadoop 这篇笔记介绍了Hadoop的基本概念,包括Hadoop的诞生背景、核心组件以及Hadoop的优势。初学者可以从这里了解Hadoop的基本架构和工作原理,为后续的学习打下基础。 总结,Hadoop...