HDFS1.0
1、hdfs本身是一个master slave架构
2、hdfs是一个分布式存储的系统架构,是一个集群(多个结点/服务器)
3、namenode是主节点,datanode是从节点
4、namenode是一个进程,是存在某个节点上(主节点)上,
本身维护着一块内存,内存中存储着两份重要的数据
(1)文件名->block数据块之间的映射关系(mapping) 针对数据块简单理解为就是一个标识
(2)block->datanode节点之间的映射关系
5、hadoop集群不适合存储海量的小文件:
(1)针对磁盘空间会产生资源浪费
(2)namenode内存资源有限,若是过多的小文件直接导致namenode内存溢出
6、hdfs1.0中只有一个namenode,主要是当时的基础设施不完整,数据量也不是很多,于是后面通过zookeeper(分布式锁)
7、datanode的作用:
(1)存储数据块,提供数据块读写服务
(2)心跳机制,块文件报告
8、Secondary NameNode ,不能理解为是namenode的备份
9、什么时候涉及到机架感知?
hadoop集群规模很大的时候,还有为了避免跨机架导致的带宽消耗
10、数据完整性
(1)校验和 crc32(冗余校验码),可以给每一个数据块一个唯一的id
(2)datanode存在后台进程(DataBlockScanner):定期检查
11、可靠性保证
(1)副本
(2)namenode和datanode之间的心跳关系
(3)数据完整性
(4)空间回收机制
12、hdfs不适合做什么?
(1)存储海量的小文件
(2)被修改
(3)大量的随机读
13、mapreduce在hdfs1.0中主(jobtracker),从(tasktracker)
14、就近原则:本地化,数据不移动,代码(任务)移动