Hadoop简介(一)
Hadoop组成
Hadoop有两个主要部分:
数据处理框架(MapReduce)
分布式数据存储文件系统(HDFS)
特点
适合的场景:
1. 大文件存储(TB,甚至PB)
2. 一次写,多次读(写入的数据无法进行更改,只在文件尾部添加数据)
3. 硬件要求低(适合多台廉价服务器搭建)
不适合的场景:
1. 低延时数据访问
2. 太多的小文件
3. 多次改写
原理
1. 一个大文件被划分成多个大小固定的文件块,分布的存储在集群的节点中(便于横向扩展容量)
2. 同一个文件块在不同的节点中有多个副本(防止某个节点文件错误、丢失;加速计算)
3. 有一个集中的地方保存文件的分块信息
HDFS
HDFS(Hadoop Distributed File System),即Hadoop分布式文件系统。
在HDFS中,namenode是总节点,用于保存文件的分块信息,负责管理多个datanode。namenode有两个:active-namenode和standby-namenode,这两个节点以主从方式工作,当active-namenode出现问题时,standby-namenode会替代active-namenode。
HDFS架构图:
从上图中我们可以看出,client要访问HDFS中的文件,首先需要向namenode询问文件的分块信息,然后再到具体的datanode中去访问。
一些概念
Block:一个文件分块,默认为64M
Namenode:保存整个文件系统的目录信息,文件信息以及文件响应的分块信息。
Datanode:用于存储Blocks
HDFS的HA策略:NameNode一旦宕机,整个文件系统将无法工作。如果NameNode中的数据丢失,整个HDFS中的文件都丢失。2.x开始,HDFS支持NameNode的active-standby模式。
MapReduce
1.原理,以求和为例: