一.分布式存储
- NameNode(名称节点)
1.维护HDFS文件系统,是HDFS的主节点。
2.接收客户端的请求:上传、下载文件、创建目录等。
3.记录客户端操作的日志(edits文件),保存了HDFS最新的状态
1)Edits文件保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等
2)保存目录:$HADOOP_HOME/tmp/dfs/name/current
可以使用 hdfs oev -i 命令将日志(二进制)输出为 XML文件
hdfs oev -i edits_inprogress_0000000000000005499 -o ~/temp/log.xml
4.维护文件元信息,将内存中不常用的文件元信息保存在硬盘上(fsimage文件)
1)fsimage是HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息
2)保存目录:edits
3)可以使用 hdfs oev -i 命令将日志(二进制)输出为 XML文件
- DataNode(数据节点)
1.以数据块为单位,保存数据
1)Hadoop1.0的数据块大小:64M
2)Hadoop2.0的数据库大小:128M
2.在全分布模式下,至少两个DataNode节点
3.数据保存的目录:由 hadoop.tmp.dir 参数指定
- Secondary NameNode(第二名称节点)
1.主要作用:合并日志
2.合并时机:HDFS发出检查点的时候
3.日志合并过程:
- HDFS存在的问题
1)NameNode单点故障问题
解决方案:Hadoop2.0中,使用Zookeeper实现NameNode的HA功能
2)NameNode压力过大,且内存受限,影响系统扩展性
解决方案:Hadoop2.0中,使用NameNode联盟实现水平扩展
二.YARN:分布式计算(MapReduce)
- ResourceManager(资源管理器)
1.接收客户端的请求,执行任务
2.分配资源
3.分配任务
- NodeManager(节点管理器:运行任务 MapReduce)
从 DataNode上获取数据,执行任务
三.HBase的体系结构