传统分布式文件系统的缺点
- 负载不均衡
- 网络带宽稀缺
HDFS块的大小固定 就没那么容易出现负载均衡问题和网络稀缺的问题
Hadoop1.x 64MB Hadoop2.x 128MB Hadoop3.x 256MB
HDFS块是HDFS系统最小的储存单元 块的大小是可以用户定义的 文件会按着块的大小拆分成多个块
保证一个块存储在一个datanonde节点上 保证数据安全使用副冗余机制所有块大小一致最后一个块除外
HDFS寻址开销不仅包括磁盘寻道开销,还包括数据块的定位开销,当客户端需要访问一个文件时,首先从名称节点获取组成这个文件的数据块的位置列表,然后根据位置列表获取实际存储各个数据块的数据节点的位置,最后,数据节点根据数据块信息在本地Linux文件系统中找到对应的文件,并把数据返回给客户端,设计成一个比较大的块,可以减少每个块儿中数据的总的寻址开销,相对降低了单位数据的寻址开销
- NameNode的内存够用的情况下,扩展DataNode
- NameNoded的内存不够用的情况下,提高块大小
默认配置文件hdfs-default.xml中,也可以在hdfs-site.xml中进行重置
设置hdfs 的块属性
dfs.blocksize 块大小
dfs.replication 副本个数
dfs.namenode.fs-limits.min-block-size 块大小的最小值
dfs.namenode.fs-limits.max-blocks-per-file 每个文件的块数目最大值
dfs.replication.max 副本数的最大值
dfs.namenode.replication.min 副本数的最小值
dfs.datanode.data.dir 块的存储位置
查看fsimage镜像文件 edits 编辑日志文件 fsimage 拷贝到备用节点 备用节点接到之后 吧正在写的edits文件也拷贝过去 在一定的时间或者操作量达到一定的次数后 备用节点内存进行合并 生成新的fsimage.chkpoint 拷贝到主节点 后重命名为fsimage 下次启动加载 fsimage 和 edits文件
查看fsimage文件
文件系统元数据的一个完整的永久检查点,内部维护的是最近一次检查点的文件系统树和整棵树内部的所有文件和目录的元数据
hdfs oiv -p 文件类型 -i 镜像文件 -o 转换后文件输出路径
查看输出的文件
查看edits文件
记录客户端对HDFS的访问操作日志,如打开、关闭、创建、删除、重命名等操作
hdfs oev -p 文件类型 -i 镜像文件 -o 转换后文件输出路径
查看输出的文件