HDFS分布式文件系统设计目标

1、            硬件错误  由于集群很多时候由数量众多的廉价机组成,使得硬件错误成为常态

2、            数据流访问  所有应用以流的方式访问数据,设置之初便是为了用于批量的处理数据,而不是低延时的实时交互处理

3、            大数据集   典型的HDFS集群上面的一个文件是以G或者T数量级的,支持一个集群当中的文件数量达到千万数量级

4、            简单的相关模型  假定文件是一次写入,多次读取的操作

5、            移动计算比移动数据便宜   一个应用请求的计算,离它操作的数据越近,就越高效

6、            多种软硬件的可移植性

3、HDFS的来源

HDFS起源于Google的GFS论文(GFS,Mapreduce,BigTable为google的旧的三驾马车)

发表于2003年10月

HDFS是GFS的克隆版

Hadoop  Distributed  File  system

易于扩展的分布式文件系统

运行在大量普通廉价机器上,提供容错机制

为大量用户提供性能不错的文件存取服务

4、HDFS的架构图之基础架构

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

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

3、副本存放在哪些Datanode上由NameNode来控制,根据全局情况作出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低读取网络开销和读取延时

4、NameNode全权管理数据库的复制,它周期性的从集群中的每个DataNode接收心跳信号和状态报告,接收到心跳信号意味着DataNode节点工作正常,块状态报告包含了一个该DataNode上所有的数据列表

注:元数据不仅保存在内存中,还保存一份在磁盘中,防止意外断电等导致数据丢失。

5、hdfs的架构之文件的文件副本机制以及block块存储

block块的大小可以通过hdfs-site.xml当中的配置文件进行指定:

<property>

<name>dfs.blocksize</name>

<value>块大小 以Byte字节为单位</value>//只写数值就可以 默认:134217728B,即128MB

</property>

<property>
  <name>dfs.replication</name>
  <value>3</value> //block的副本数量设置
</property>

5.1、抽象成数据块的好处

    1. 一个文件有可能大于集群中任意一个磁盘 
      10T*3/128 = xxx块 2T,2T,2T 文件方式存—–>多个block块,这些block块属于一个文件
    2. 使用块抽象而不是文件可以简化存储子系统
    3. 块非常适合用于数据备份进而提供数据容错能力和可用性

5.2、块缓存

block块缓存:可以将我们的block块缓存到内存当中,我们在执行一些MR计算的时候,可以直接从内存当中获取数据,比较快,特别适用于一些小表join大表的情况。

5.3、hdfs的文件权限验证

hdfs的权限验证:采用的是linux类似的权限校验机制,防止好人做错事,不能阻止坏人干干事,hdfs相信你告诉我你是谁,你就是谁。

最新文章

  1. Solr环境搭建过程中遇到的问题
  2. redis 存储session实现session共享
  3. Cluster analysis
  4. 新增PHP经典笔记
  5. Hdu 2971 Tower
  6. git推送本地分支到远端 以及删除远端分支的 命令
  7. 提升升级 强制更新 Download
  8. c++ anonymous namespace -- 匿名空间
  9. javascript (四) 改变html样式
  10. SQL Server审计功能入门:SQL Server审核 (SQL Server Audit)
  11. 基础-Ajax,json
  12. 路由知识 静态路由 rip eigrp ospf
  13. 网页基础:网页设计(我所知道的所有的html和css代码(含H5和CSS3)),如有错误请批评指正
  14. Dostoevsky: Better Space-Time Trade-Offs for LSM-Tree Based Key-Value Stores via Adaptive Removal of Superfluous Merging 阅读笔记
  15. 解决jQuery ajax动态新增节点无法触发点击事件的问题
  16. PyOpenCV图像逆时针旋转90度
  17. Code::Blocks 导入Makefile工程
  18. 对WinMain程序入口函数返回值为msg.wParam的几点理解
  19. [No0000DD]C# StringEx 扩展字符串类 类封装
  20. python中的struct模块

热门文章

  1. [Codeforces 839C] Journey
  2. AutoIT: WinGetText的作用
  3. CF 949 D Curfew —— 二分答案
  4. python创建文件
  5. JAVA 毕业设计 辅导
  6. treap板子(洛谷 P3369 【模板】普通平衡树(Treap/SBT))
  7. LinkedList,SortedList 基本用法
  8. C# winform与Javascript的相互调用[转]
  9. HUST 1698 - 电影院 组合数学 + 分类思想
  10. [转]Business Model Canvas(商业模式画布):创业公司做头脑风暴和可行性测试的一大利器