文档章节

大型分布式文件系统HDFS的整体架构

FEINIK
 FEINIK
发布于 2018/03/03 10:22
字数 815
阅读 157
收藏 2

1 概述

HDFS是分布式文件系统,具有高度容错能力,运行在廉价的机器上。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。

2 HDFS特性

(1)可用于存储超大文件,如(GB,TB,PB)级别的文件。

(2)可运行在廉价的硬件之上,HDFS通过自身的容错机制来保证数据的安全性

(3)流式数据访问,支持一次写入、多次读取的高效访问模式。

(4)适合数据访问高吞吐量的应用场景,不适合要求低延时数据访问的应用场景。

(5)为了保证数据访问的高效性,HDFS不支持多个写入操作,也不支持在文件的任意位置进行修改,但不排除后续会支持这些操作。

本文讲解的是Hadoop2.x发行版

3 HDFS数据块

HDFS的数据块默认大小为128MB,之所以设置这么大的块占用空间,主要是为了减少磁盘的最小化寻址开销,HDFS上的文件会被切割为以块大小为单位的多个分块,为了保证数据的安全性,每个数据块都会被复制到多个服务节点中进行备份(默认为3个),通过应用程序也可以指定每个文件的副本数。如果发现一个块不可用,系统会从其他地方读取另一个副本块。

4 NameNode 和 DataNodes

HDFS属于master/slave架构,由一个名称节点(NameNode)与多个数据节点(DataNodes)构成。

(1)NameNode:存放元数据(名称,副本数、权限、块列表......),负责名称空间以及客户端(client)的访问

(2)DataNode:负责提供来自文件系统客户端的读取和写入请求,并且定期向NameNode发送他们所存储的块的列表信息。

NameNode的元数据中主要由镜像文件(fsimage)与编辑日志文件(edits)组成,需要说明的是元数据中并没有存储每个数据块所在的服务器节点,而是在启动HDFS集群的时候由每个DataNode节点自动上报数据信息给NameNode服务节点。

通过HDFS自带的离线查看工具来查看镜像文件与编辑日志文件

(1)查看fsimage镜像文件:$ hdfs oiv -p XML -i 镜像文件 -o 输出文件路径

(1)查看edits日志文件:$ hdfs oev -p XML -i 镜像文件 -o 输出文件路径

5 NameNode的容错机制

系统中NameNode是非常重要的,如果NameNode节点挂掉,或者NameNode的元数据毁坏,整个文件系统将无法正常使用,因此对NameNode的容错机制非常重要,Hadoop提供了两种保护措施。

(1)NameNode HA With QJM 或者 NameNode HA With NFS

(2)通过一个辅助节点及SecondaryNameNode来定期备份元数据

在NameNode失效后,为了更加快速的切换到NameNode的正常服务状态,一般会选择第一种机制,第一种机制的具体实现细节后续文章会在做讲解。

 

 

 

 

 

© 著作权归作者所有

FEINIK
粉丝 227
博文 61
码字总数 61705
作品 0
广州
高级程序员
私信 提问
分布式计算框架Hadoop原理

  本文来自于csdn,这篇文章讲解了分布式计算框架的核心内容、架构图详解,运用流程等   hadoop是Apache软件基金会所开发的并行计算框架与分布式文件系统。最核心的模块包括Hadoop Comm...

深度学习
2018/01/06
0
0
分布式计算框架Hadoop原理

  编辑推荐:   本文来自于csdn,这篇文章讲解了分布式计算框架的核心内容、架构图详解,运用流程等   Hadoop是Apache软件基金会所开发的并行计算框架与分布式文件系统。最核心的模块包...

大数据头条
2018/01/05
0
0
大数据入门之hadoop相关概念知识点整理

Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。今天整理了一些关于had...

技术阿飞
2018/12/10
27
0
分布式计算框架Hadoop原理及架构全解

Hadoop是Apache软件基金会所开发的并行计算框架与分布式文件系统。最核心的模块包括Hadoop Common、HDFS与MapReduce。HDFSHDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩...

Java小铺
2018/05/26
0
0
Hadoop 2.7.0 发布,不再支持 JDK 6

Apache Hadoop 2.7.0 发布,包括大量显著改进,值得关注的改进如下: 重大改进 此版本不再支持 JDK 6 运行时,仅支持 JDK 7+ 此版本不适用于生产环境!还有一些重要的问题需要通过测试,用于...

purple_grape
2015/04/24
7.4K
8

没有更多内容

加载失败,请刷新页面

加载更多

MongoDB系列-在复制集(replication)以及分片(Shard)中创建索引

关注我,可以获取最新知识、经典面试题以及微服务技术分享   在使用MongoDB时,在创建索引会涉及到在复制集(replication)以及分片(Shard)中创建,为了最大限度地减少构建索引的影响,在副本...

ccww_
10分钟前
7
0
SAP HANA数据库multi container模式JDBC链接connection refused

报错如下信息 com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: Cannot connect to jdbc:sap://xxx.xxx.xxx.xxx:30015 [Cannot connect to host xxx.xxx.xxx.xxx:30015 [C......

flash胜龙
35分钟前
14
0
c++ 虚基类

c++ 虚基类 p556

天王盖地虎626
42分钟前
72
0
k8s删除Terminating状态的命名空间

背景: 我们都知道在k8s中namespace有两种常见的状态,即Active和Terminating状态,其中后者一般会比较少见,只有当对应的命名空间下还存在运行的资源,但是该命名空间被删除时才会出现所谓的...

Andy-xu
53分钟前
57
0
seata源码阅读笔记

seata源码阅读笔记 本文没有seata的使用方法,怎么使用seata可以参考官方示例,详细的很。 本文基于v0.8.0版本,本文没贴代码。 seata中的三个重要部分: TC:事务协调器,维护全局事务和分支...

东都大狼狗
今天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部