HDFS(hadoop distributed file system)分布式文件存储系统。
HDFS的架构:
主从结构
主节点只有一个 – namenode
从节点有很多个 – datanodesnamenode负责:
1.接受用户操作请求
2.维护文件系统的目录结构
3.管理文件与block之间的关系,block与datanodes之间的关系datanodes负责:
1.存储文件
2.文件被分成block分布在磁盘上
3.为了保证文件安全,文件会有多个副本
MapReduce的结构:
主从结构
主节点只有一个 – JobTracker
从节点有很多个 – TaskTrackersJobTracker负责:
1.接受客户提交的计算任务
2.把计算任务分给TaskTrackers执行
3.监控taskTracker的执行情况TaskTrackers负责:
执行JobTracker分配的计算任务
Namenode:
是整个文件系统的管理节点,它维护着整个文件系统的文件目录树,文件、目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
文件包括:
fsimage:元数据镜像文件。存储某一段时间Namenode内存元数据信息
edits:操作日志文件
fstimes:保存最近一次checkpoint的时间
以上这些文件是保存在linux的文件系统中
其中这些配置文件对应core-site.xml的hadoop.tmp.dir属性
Datanode:
提供真实文件数据的存储服务
文件块(block): 最基本的存储单位。对于文件内容而言,一个文件的长度大小时size,那么从文件的o偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一块称为一个block。hdfs默认的block大小是64MB,以一个256MB的文件,公邮256/64=4个block。
不同于普通文件系统的是,hdfs中,如果一个文件小于一个数据块的大小,并不占用整个数据块的存储空间
Replication。 多副本,默认是三个,这个在hdfs-site.xml的dfs.replication属性