Namenode

1、namenode是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的命名空间(namespace)以及客户端对文件的访问。

2、文件操作:namenode负责对元数据的操作,datanode负责处理文件内容的读取请求,跟文件内容相关的数据流读取操作不会经过namenode,只会询问它跟哪个datanode联系,否则namenode会成为系统的瓶颈。

3、副本存放在哪些datanode上由namenode来控制,根据全局情况做成块放置决定,client读取文件时namenode尽量让用户先读取最近的副本,降低带宽消耗和读取延迟。

4、Namenode全权管理数据块的复制,它周期性的从集群中的每个datanode接受心跳信号和块的报告(balockreport)。接收心跳信号意味着该datanode节点工作正常,块的报告包含了一个datanode上包含所有块的列表。

Datanode

1、一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度、块数据的校验和以及时间戳。

2、Datanode启动后向namenode注册,通过后,周期性(1小时)的向namenode上报所有的块信息。

3、心跳是每3秒一次,心跳返回结果带有namenode给该datanode命令如复制数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个datanode的心跳,则认为该节点不可用。

4、集群中可以安全的加入和退出一些机器,而不影响集群整体运作。

文件

1、文件切分成块(hadoop 2.x默认大小128m),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3)。

2、Namenode是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表以及块所在的datanode等等。

3、Datanode在本地文件系统存储文件块数据,以及块数据的校验和。

4、可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。

数据损坏(corruption)处理

1、当datanode读取block的时候,它会计算checksum

2、如果计算后的chencksum与block创建时的值不一样,说明该block已经损坏。

3、Client读取其他datanode上的block。

4、Namenode标记该块已经损坏,然后复制block达到预期设置的文件备份数。

5、Datanode在其文件创建后三周验证其checksum

HDFS Shell命令

1、调用文件系统(FS)Shell命令使用bin/hdfs dfs的形式

2、所有的FS Shell命令使用URI路径作为参数

3、URI格式是shemale://authority/path.HDFS的schema是hdfs,对于本地文件系统schema是file,其中schema和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认schema

4、例如:/parent/child可以表示成hdfs://namenode:namenodePort/parent/child

5、大多数FS Shell命令行为和对应的Linux Shell命令相似

HDFS架构详解-非官档的更多相关文章

  1. hadoop之hdfs架构详解

    本文主要从两个方面对hdfs进行阐述,第一就是hdfs的整个架构以及组成,第二就是hdfs文件的读写流程. 一.HDFS概述 标题中提到hdfs(Hadoop Distribute File Syst ...

  2. hdfs架构详解(防脑裂fencing机制值得学习)

    HDFS(Hadoop Distributed File System)是一个分布式文件存储系统,几乎是离线存储领域的标准解决方案(有能力自研的大厂列外),业内应用非常广泛.近段抽时间,看一下 HDF ...

  3. hdfs文件系统架构详解

    hdfs文件系统架构详解 官方hdfs分布式介绍 NameNode *Namenode负责文件系统的namespace以及客户端文件访问 *NameNode负责文件元数据操作,DataNode负责文件 ...

  4. Hyperledger Fabric架构详解

    区块链开源实现HYPERLEDGER FABRIC架构详解 区块链开源实现HYPERLEDGER FABRIC架构详解 2018年5月26日 陶辉 Comments 10 Comments hyper ...

  5. 领域驱动设计(Domain Driven Design)参考架构详解

    摘要 本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces.Applications和Domain三层以及包含各类基础设施的Infrast ...

  6. WeChatAPI 开源系统架构详解

    WeChatAPI 开源系统架构详解 如果使用WeChatAPI,它扮演着什么样的角色? 从图中我们可以看到主要分为3个部分: 1.业务系统 2.WeChatAPI: WeChatWebAPI,主要是 ...

  7. hadoop hdfs uri详解

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  8. [转载]领域驱动设计(Domain Driven Design)参考架构详解

    摘要 本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces.Applications和Domain三层以及包含各类基础设施的Infrast ...

  9. NopCommerce源码架构详解--初识高性能的开源商城系统cms

    很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们 ...

随机推荐

  1. WAMP运行分析

  2. linux 下查看cpu信息

    linux 操作系统的位数查看 A. getconf LONG_BIT 如果是32表示是32位 B.  file /sbin/init信息全面一些 root@kali:~/software# file ...

  3. Python迭代器笔记

    python中的三大器有迭代器,生成器,装饰器,本文重点讲解下迭代器的概念,使用,自定义迭代器等的介绍. 1.概念: 迭代器是一个对象,一个可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问 ...

  4. python--Anaconda学习笔记

    http://study.163.com/course/courseLearn.htm?courseId=1003664056#/learn/video?lessonId=1048567028& ...

  5. inux跟踪线程的方法:LWP和strace命令

    摘要:在使用多线程程序时,有时会遇到程序功能异常的情况,而这种异常情况并不是每次都发生,很难模拟出来.这时就需要运用在程序运行时跟踪线程的手段,而linux系统的LWP和strace命令正是这种技术手 ...

  6. linux系统cpu和内存占用率

    1.top 使用权限:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明:即时显示process的动态 d :改变显示的更新速度,或 ...

  7. 51开发环境的搭建--KeilC51的安装及工程的创建

    学习单片机的开发,单靠书本的知识是远远不够的,必须实际操作编程才能领会书中的知识点,起到融会贯通的效果.51单片机作为入门级的单片机--上手容易.网上资源丰富.单片机稳定性及资源比较丰富.通过串口即可 ...

  8. iOS - Action Extension

    上一篇<iOS开发 之 Share Extension>介绍了分享扩展的开发与使用,本篇主要还是讲述在系统分享菜单中最底下一栏的功能扩展:Action Extension,该扩展跟Shar ...

  9. Apache HTTP Server 与 Tomcat 的三种连接方式介绍

    本文转载自IBM developer 首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接.事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 8080,装 ...

  10. 让A超链接无效的办法 阻止元素发生默认的行为

    $("a").click(function(event){ event.preventDefault(); }); event.preventDefault(); 方法阻止元素发生 ...