Hadoop的结构体系
单节点结构体系
集群架构分析
hadoop的特点
- Hadoop分布式文件系统
- 按需定制MapReduce:map+reduce,大数据量(纯文本)
- 优势在于一次写入多次读取(若频繁写入,则不应该使用hadoop)
- 写入成本比较高
- 高度的数据冗余(副本,默认为3)
- 每个节点不需要RAID-独立磁盘冗余阵列(redundant array of independent disk),但是在NameNode是需要raid存储的,DataNode是不需要raid存储的raid就是为了数据的安全可用且快速访问,但是成本还是比较高的
- Blocksize较大(128m)data文件过大时么就需要切割,然后均匀的分布在datanode上
- 定制节点的位置感知由上面的架构分析,若两个节点交互是需要进程之间的交互的,那么可以选择较近的节点,默认在同一个机架上
补充:RAID-0:Stripe或Striping,数据分散化多个磁盘存储,多个磁盘并行读取,提高数据带宽,安全性很差。2块硬盘
RAID-1:磁盘镜像,互为备份。数据安全性很高,但是成本高,浪费了一般的存储能力。2块硬盘
RAID-10:RAID1 + RAID0,4块盘
RAID-5:介于0和1之间,采用校验存储,放在第三块盘。如果损坏,从第三块盘恢复。
NameNode andDataNode
NameNode
为了维护两张映射表,
table1 :namespace --> block(存储在硬盘上)
table2 : block --> datanode(存储在内存上 实时动态更新的)
- 存储的是文件的元数据(不可分割的数据) ,比如目录结构(path)
- 运行NameNode的服务器至关重要,只有1个
- 只对元数据的增删做日志记录,不对block和文件流做记录
- DataNdoe故障时,负责创建更多的副本block
DataNode
数据节点负责从客户端的读写请求,数据节点也执行block的创建,删除,复制的指令(来自NameNode)
- 存储真实数据
- 可以运行在多种文件系统上(ext,NTFS …)
- 通知NameNdoe自己有哪些block
- NameNdoe在同一机架创建放置一个副本,另一机架放置2个副本