Hadoop Distributed File System

  • 易于拓展的分布式文件系统
  • 运行在大量普通廉价机器上,提供容错机制
  • 为大量用户提供性能不错的文件存取服务

NameNode

  • Namenode是一个中心服务器,==单一节点==(简化系统的设计和实现),==负责管理文件系统的名字空间(namespace)以及客户端对文件的访问==。
  • 文件操作,==NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode==,只会询问他跟哪个DataNode联系,否则NameNode会成为系统的瓶颈。
  • 副本存放在那些DataNode上是由NameNode控制的,根据全局情况作出块放置决定,==读取文件时NameNode尽量让用户先读取最近的副本==,降低带块消耗和读取时延。
  • ==NameNode全权管理数据块的赋值==,它周期性地从集群中的==每个DataNode接收心跳信号和块状态报告(Blockreport)==。接手到心跳信号意味着该DataNode节点工作正常。块状态报告包含了一个该==DataNode上所有数据块==的列表。

DataNode

  • 一个==数据块在DataNode以文件存储在磁盘上==,包括两个文件,一个是数据本身,一个是==元数据包括数据块的长度,块数据的校验和,以及时间戳==。
  • DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。
  • 心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令,如复制块数据到另一台机器,或者删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。
  • 集群运行中可以安全加入和退出一些机器。

文件

  • ==文件切分成块==(默认128M),以块为单位,==每个块有多个副本存储在不同的机器上==,副本数可在文件生成时指定(默认3)。
  • NameNode是主节点,==存储文件的元数据==如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的快列表以及块所在的DataNode等待。
  • DataNode在本地文件==系统存储文件块数据==,以及==块数据的校验和==。
  • ==可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容==。

HDFS Architecture

Data Replication

副本放置策略

For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on one node in the local rack, another on a different node in the local rack, and the last on a different node in a different rack. This policy cuts the inter-rack write traffic which generally improves write performance. The chance of rack failure is far less than that of node failure; this policy does not impact data reliability and availability guarantees. However, it does reduce the aggregate network bandwidth used when reading data since a block is placed in only two unique racks rather than three. With this policy, the replicas of a file do not evenly distribute across the racks. One third of replicas are on one node, two thirds of replicas are on one rack, and the other third are evenly distributed across the remaining racks. This policy improves write performance without compromising data reliability or read performance.


数据损坏(corruption)处理

  • 当DataNode读取block的时候,它会计算checksum
  • 如果计算后的checksum,与block创建时值不一样,说明该block已经损坏。
  • Client读取其他DataNode上的block
  • NameNode标记该块已经损坏,然后复制block达到预期设置的文件备份数。
  • DataNode在其文件创建后三周验证其checksum。

1、HDFS 架构、启动过程的更多相关文章

  1. HDFS Namenode启动过程

    文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6564032.html  转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点, ...

  2. Tomcat架构解析(二)-----Connector、Tomcat启动过程以及Server的创建过程

    Connector用于跟客户端建立连接,获取客户端的Socket,交由Container处理.需要解决的问题有监听.协议以及处理器映射等等. 一.Connector设计   Connector要实现的 ...

  3. HDFS启动过程概述及集群安全模式操作

    1.启动过程概述 Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作.一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件 ...

  4. 浅读tomcat架构设计和tomcat启动过程(1)

    一图甚千言,这张图真的是耽搁我太多时间了: 下面的tomcat架构设计代码分析,和这张图息息相关. 使用maven搭建本次的环境,贴出pom.xml完整内容: <?xml version=&qu ...

  5. 大数据技术hadoop入门理论系列之二—HDFS架构简介

    HDFS简单介绍 HDFS全称是Hadoop Distribute File System,是一个能运行在普通商用硬件上的分布式文件系统. 与其他分布式文件系统显著不同的特点是: HDFS是一个高容错 ...

  6. HDFS 架构简述

    HDFS 架构简述 Hadoop分布式文件系统(HDFS)是一个分布式的文件系统,运行在廉价的硬件上.它与现有的分布式文件系统有很多相似之处.然而与其他的分布式文件系统的差异也是显着的.HDFS是高容 ...

  7. HDFS概述(1)————HDFS架构

    概述 Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在普通商用硬件上运行.它与现有的分布式文件系统有许多相似之处.然而,与其他分布式文件系统的区别很大.HDFS具有高度的容错能力,旨 ...

  8. Hadoop学习笔记一(HDFS架构)

    介绍 Hadoop分布式文件系统(HDFS)设计的运行环境是商用的硬件系统.他和现存的其他分布式文件系统存在很多相似点.不过HDFS和其他分布式文件系统的区别才是他的最大亮点,HDFS具有高容错的特性 ...

  9. HDFS架构及原理

    原文链接:HDFS架构及原理 引言 进入大数据时代,数据集的大小已经超过一台独立物理计算机的存储能力,我们需要对数据进行分区(partition)并存储到若干台单独的计算机上,也就出现了管理网络中跨多 ...

  10. 06_Hadoop分布式文件系统HDFS架构讲解

    mr  计算框架 假如有三台机器 统领者master 01  02  03  每台机器都有过滤的应用程序 移动数据 01机== 300M  >mr 移动计算  java程序传递给各个机器(mr) ...

随机推荐

  1. Delphi RSA签名与验签【支持SHA1WithRSA(RSA1)、SHA256WithRSA(RSA2)和MD5WithRSA签名与验签】

    作者QQ:(648437169) 点击下载➨ RSA签名与验签 [delphi RSA签名与验签]支持3种方式签名与验签(SHA1WithRSA(RSA1).SHA256WithRSA(RSA2)和M ...

  2. golang module 下载外网资源失败解决办法

    用 golang 1.11 module 特性时,需要下载golang.org等外网地址的库文件 可以创建环境变量GOPROXY,使用Aliyun的镜像 go公共代理文档 简介 go module公共 ...

  3. 【LEETCODE】62、数组分类,hard级别,题目:42、128

    package y2019.Algorithm.array.medium; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.a ...

  4. [Atcoder AGC030C]Coloring Torus

    题目大意:有$k$种颜色,要求构造出一个$n\times n$的矩阵,填入这$k$种颜色,满足对于每一种颜色,其中填充这种颜色的每一个方格,满足其相连的四个格子的颜色的个数和种类相同(对于每一种颜色而 ...

  5. kubernetes-dashboard登录出现forbidden 403

    登录k8s dashboard https://xxxxx:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard ...

  6. 用HTML、CSS、JS制作圆形进度条(无动画效果)

    逻辑 1.首先有一个圆:蓝色的纯净的圆,效果: 2.再来两个半圆,左边一个,右边一个将此蓝色的圆盖住,效果: 此时将右半圆旋转60°,就会漏出底圆,效果:   然后我们再用一个比底圆小的圆去覆盖这个大 ...

  7. 关于AWK的10个经典案例

    awk是Linux系统下一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等,应用非常广泛.基本的命令语法:awk option 'pattern {actio ...

  8. 利用position absolute使div居中

    外层DIV{position:realtive}内层DIV{positon:absolute;top:50%;left:50%;margin-top:-100px;margin-left:-150px ...

  9. hbuilder 热更新

    记录下Hbuilder做热更新的功能. 首先是获取本地的版本与服务器的版本对比.服务器的版本大于本地的版本才进行更新.获取本地版本的方法 plus.runtime.getProperty(plus.r ...

  10. JENKINS安卓打包CI

    jenkins构建脚本: [root@localhost tomcat]# cat move.sh #!/bin/bash # author lql release_dir=/data/android ...