HDFS的设计思想:
构建一个非常庞大的分布式文件系统。在集群中节点失效是正常的,节点的数量在Hadoop中不是固定的.单一的文件命名空间,保证数据的一致性,写入一次多次读取.典型的64MB的数据块大小,每一个数据块在多个DN(DataNode)有复制.客户端通过NN(NameNode)得到数据块的位置,直接访问DN获取数据。
NameNode功能:
映射一个文件到一批的块,映射数据块到DN节点上。集群配置管理,数据块的管理和复制。处理事务日志:记录文件生成,删除等。因为NameNode的全部的元数据在内存中存储,所以NN的内存大小决定整个集群的存储量。NN内存中保存的数据:
- 文件列表
- 每一个文件的块列表
- 每一个DN中块的列表
- 文件属性:生成时间,复制参数,文件许可(ACL)
File,Derectory,Block在内存中的大小(Hadoop JIRA页面):
- File:122 + fileName.length
- Directory:152 + fileName.length
- Block:112 + 24*replication
备注:上面数据和jira中不一样是因为在0.16以上的版本在INode中添加了一个8字节的数据类型为long的permission数据。
NN的复制线程负责根据文件复制数量选择DN,磁盘的使用负载平衡,DN复制时的IPC通信负载平衡 。
Secondary Namenode的功能:
Secondary Namenode是一个让人混淆的名字,其实Secondary Namenode是一个辅助NN处理FsImage和事务日志的Server,它从NN拷贝FsImage和事务日志到临时目录,合并FsImage和事务日志生成一个新的FsImage,上传新的FsImage到NN上,NN更新FsImage并清理原来的事务日志。
DataNode功能:
在本地文件系统存储数据块,存储数据块的元数据,用于CRC校验。响应客户端对数据块和元数据的请求。周期性的向NN报告这个DN存储的所有数据块信息。客户端要存储数据时从NN获取存储数据块的DN位置列表,客户端发送数据块到第一个DN上,第一个DN收到数据通过管道流的方式把数据块发送到另外的DN上。当数据块被所有的节点写入后,客户端继续发送下一个数据块。DN每3秒钟发送一个心跳到NN,如果NN没有受到心跳在重新尝试后宣告这个DN失效。当NN察觉到DN节点失效了,选择一个新的节点复制丢失的数据块。
数据块的放置位置和数据正确性:
在典型的配置里,数据块一个放在当前的节点,一个放在远程的机架上的一个节点,一个放在相同机架上的一个节点,多于3个的数据块随意选择放置。客户端选择最近的一个节点读取数据。Hadoop使用CRC32效验数据的正确性,客户端每512个byte计算一次效验,DN负责存储效验数据。客户端从 DN获取数据和效验数据,如果效验出错,客户端尝试另外节点上复制的数据。
Tips:
单点的NN,现在Hadoop没有HA的解决方案。在我的概念中Hadoop加上Zookeeper是一个HA的解决方案。事务日志可以存储在NM的多个目录中。比如:一个本地文件系统,一个远程文件系统(NFS)。Hadoop没有快照功能,可以考虑使用LVM或ZFS做系统快照。
作者:马士华 发表于:2008-07-31 13:03 最后更新于:2008-07-31 13:05
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
http://www.hadoop.org.cn/hadoop/hadoop-hdfs/
分享到:
相关推荐
在Java编程环境中,结合Hadoop HDFS(Hadoop Distributed File System)进行大数据处理是一种常见的实践。本项目聚焦于从HDFS读取数据,执行GROUP BY操作,并将统计结果以条形图的形式展示出来,提供了直观的数据...
Java整合Spring和Hadoop HDFS是一项常见的任务,特别是在大数据处理和分布式存储的场景下。这里,我们将深入探讨这个主题,了解如何将这三个关键技术融合在一起。 首先,Java是编写应用程序的通用编程语言,它提供...
Hadoop HDFS和MapReduce架构浅析.pdf 更多资源请点击:https://blog.csdn.net/weixin_44155966
在大数据处理领域,Hadoop HDFS(Hadoop Distributed File System)是广泛使用的分布式文件系统,它为大规模数据处理提供了高效、可靠的数据存储解决方案。而Python作为一种灵活易用的编程语言,常常被用来与Hadoop ...
基于Hadoop HDFS的分布式文件系统备份与恢复系统 内容概要 本项目是一个基于Hadoop HDFS的分布式文件系统备份与恢复系统。它包括备份节点(BackupNode)和数据节点(DataNode)的管理,以及与NameNode的通信。...
snapshot为hadoop2.1.0时新增加的功能。 主要为防止用户误删数据,和数据备份的作用 快照的对象为HDFS目录,前提是该目录是可以允许设置快照的(SnapShotable)
基于Hadoop HDFS的分布式文件系统操作工具 项目简介 本项目是一个基于Hadoop HDFS(Hadoop Distributed File System)的分布式文件系统操作工具。它提供了一系列API和工具类,用于简化与HDFS的交互,包括文件的...
在Windows客户端连接Hadoop HDFS时,可能会遇到各种问题,如网络不通、配置不正确、驱动不兼容等。本文将详细介绍如何在Windows环境下完美解决这些问题,实现顺利连接Hadoop分布式文件系统(HDFS)。 首先,理解...
Hadoop HDFS分布式文件系统常用命令汇总 Hadoop HDFS分布式文件系统是大数据存储和处理的核心组件。作为一个分布式文件系统,HDFS提供了高可靠性、高可扩展性和高性能的存储解决方案。在使用HDFS时,经常需要执行...
标题"I001-hadoophdfs-mkdirs.7z"指向的是一个关于Hadoop HDFS(Hadoop Distributed File System)操作的压缩包文件,特别是关于创建目录(mkdirs)的教程或参考资料。Hadoop是Apache软件基金会开发的一个开源框架,...
### 大数据、Hadoop与HDFS详解 随着信息技术的快速发展和互联网的普及,数据量呈爆炸性增长态势。传统的数据处理工具和技术已无法满足如此大规模数据的存储、管理和分析需求。为此,Apache Hadoop应运而生,它提供...
"Hadoop HDFS原理分析" HDFS(Hadoop Distributed File System)是Hadoop项目的一部分,是一个分布式文件管理系统。HDFS的设计理念是为了存储和管理大量的数据,具有高容错性、可扩展性和高性能的特点。 HDFS的...
本文件“hadoophdfs写入文件原理详解共2页.pdf.zip”虽然只有短短两页,但应该涵盖了HDFS文件写入的关键流程。以下是基于该主题的详细知识解析: 1. **HDFS架构**:HDFS是由NameNode和DataNode组成的。NameNode作为...
在大数据处理领域,Hadoop HDFS(Hadoop Distributed File System)是核心组件之一,它为大规模数据存储提供了可扩展、高容错性的解决方案。本高级教程将深入剖析HDFS的内部机制,帮助读者掌握其核心概念和实际操作...
该套源码是个人学习Hadoop HDFS和MapReduce技术的实践案例集合,采用Java语言编写,包含45个文件,涵盖34个Java源文件、4个XML配置文件、3个偏好设置文件以及1个Git忽略文件等。内容涵盖HDFS的JAVA API操作,如文件...
### Hadoop HDFS初级部分知识点概述 #### 一、HDFS简介 **HDFS**(Hadoop Distributed File System)是Hadoop项目的核心子项目之一,它是一个分布式文件系统,旨在为海量数据提供高吞吐量的访问能力。HDFS的设计目标...
Prometheus Hadoop HDFS FSImage导出器 | 将Hadoop HDFS统计信息导出到包括 总数/每个用户/每个组/每个配置的目录路径/每个路径集 目录数 文件数 文件大小和大小分布(可选) 块数 文件复制(总体/每个用户摘要)...
在Windows平台上,利用Hadoop HDFS(分布式文件系统)处理大量数据已经成为常见的操作。本示例将详述如何使用Eclipse集成开发环境(IDE)的Hadoop插件,执行一个基于HDFS的中文分词任务,对《唐诗三百首》进行分析,...
在大数据处理领域,Hadoop是不可或缺的开源框架,它的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。本篇文章将详细讲解Hadoop HDFS文件操作、MapReduce(MR)示例以及如何实现TopN问题。 首先...
Hadoop HDFS 架构概述推荐系统框架图 Hadoop 是什么?Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题。Hadoop 通常是指一个更广泛的概念——Hadoop ...