hadoop架构总结(二)
分布式文件系统HDFS-HA
随着互联网的进步,无论是PC还是移动,个人还是企业,每天都有PB级的数据产生,其中大部分的数据都是没有意义的,少部分数据可以用来计算分析,作决策。最典型的例子就是音乐推荐、电影推荐、移动购物推荐。平台将大量用户点击形成的日志文件存储起来,通过数据清晰、存储,再进行实时计算获得优质决策。
那么在大数据的背景下就需要有对应的大数据存储架构。以往的数据往往是存储在单台电脑上,带来的最直接的限制就是存储量与吞吐率。传统存储架构要完成大数据存储需要投入高额的硬件基础比如PB级的存储盘或者是增加硬件数量通过共享文件的方式。
增加硬件数量通过网络传输实现文件共享是分布式文件系统的雏形,但是会带来一些显而易见限制:
单机负载可能极高
某些机器存储较热门的数据,很多用户会去访问这个机器,负载过大。
数据不安全
机器损坏代表数据丢失
问价整理困难
内存空间管理、存储路径管理等。
HDFS设计理念
当文件大小超过单台机器的存储能力时,就有必要将数据文件切割并存储在多台由计算机组成的集群中,集群内通过网络传输数据,HDFS对外抽象成一个统一的文件管理系统,实现单台计算机的使用感受。
支持超大文件存储
流式数据访问
简单的一致性模型,文件写入关闭后不支持修改
硬件故障检测和快速应对
数据复制副本的形式分散在多个节点,一个数据损坏还有备份数据
HDFS架构
HDFS是一个主从架构,通常具有一个NameNode,SecondaryNameNode和至少一个DataNode。
NameNode
namenode节点是集群主节点,对外提供服务,管理文件系统的命名空间保存了两个最核心的文件,文件镜像FsImage和编辑日志EditLog。FsImage记录了集群的目录树以及目录树中的所有子目录和文件,EditLog记录的是文件/目录的增加、删除、重命名等操作。
集群在启动时会