一、 硬件错误 因为集群不少时候由数量众多的廉价机组成,使得硬件错误成为常态node
二、 数据流访问 全部应用以流的方式访问数据,设置之初即是为了用于批量的处理数据,而不是低延时的实时交互处理linux
三、 大数据集 典型的HDFS集群上面的一个文件是以G或者T数量级的,支持一个集群当中的文件数量达到千万数量级数据库
四、 简单的相关模型 假定文件是一次写入,屡次读取的操做缓存
五、 移动计算比移动数据便宜 一个应用请求的计算,离它操做的数据越近,就越高效服务器
六、 多种软硬件的可移植性网络
HDFS起源于Google的GFS论文(GFS,Mapreduce,BigTable为google的旧的三驾马车)架构
发表于2003年10月分布式
HDFS是GFS的克隆版oop
Hadoop Distributed File system性能
易于扩展的分布式文件系统
运行在大量普通廉价机器上,提供容错机制
为大量用户提供性能不错的文件存取服务
四、HDFS的架构图之基础架构
一、NameNode是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问
二、文件操做,namenode是负责文件元数据的操做,datanode负责处理文件内容的读写请求,跟文件内容相关的数据流不通过Namenode,只询问它跟哪一个dataNode联系,不然NameNode会成为系统的瓶颈
三、副本存放在哪些Datanode上由NameNode来控制,根据全局状况做出块放置决定,读取文件时NameNode尽可能让用户先读取最近的副本,下降读取网络开销和读取延时
四、NameNode全权管理数据库的复制,它周期性的从集群中的每一个DataNode接收心跳信号和状态报告,接收到心跳信号意味着DataNode节点工做正常,块状态报告包含了一个该DataNode上全部的数据列表
注:元数据不只保存在内存中,还保存一份在磁盘中,防止意外断电等致使数据丢失。
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>
block块缓存:能够将咱们的block块缓存到内存当中,咱们在执行一些MR计算的时候,能够直接从内存当中获取数据,比较快,特别适用于一些小表join大表的状况。
hdfs的权限验证:采用的是linux相似的权限校验机制,防止好人作错事,不能阻止坏人干干事,hdfs相信你告诉我你是谁,你就是谁。