HDFS

2016年4月17日 HDFS

@(2016年4月17日--Hadoop)[hadoop, hdfs]


namenode

  • 元数据(文件名,权限,时间)
  • fsimage(内存) 二进制
  • edits_log 二进制 修改的信息先放在edits_log
  • 重启时合并fsimage 和edits_log
  • hdfs有很多修改(元数据-->edites_log)很大下一次重启namenode,合并变得很慢

secondary namenode

  • 周期性的合并fsimage和edits,辅助namenode
  • 通常安装到另外一台物理服务器

合并的条件

  • 周期性:1个小时
  • edits:大约64M

配置 secondary namenode

hdds-site.xml
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop01:50090</value>
</property>
<!--重启服务-->

namenode的特性

namenode工作图

  • HDFS的中心服务器
  • 客户端访问HDFS的入口
  • 响应给客户端的数据直接由datanode输出
  • 读取文件时namenode尽量让用户先读取最近的副本
  • 周期性的从集群中的每个datanode接收心跳新号

namenode启动过程

namenode格式化

  • 创建fsimage文件,存储fsimage信息
  • 创建edits文件

datanode

  • 存储数据
  • 以块为单位进行存储(128M)
  • 存储块数据的校验码
  • 一次写入(一旦写入,流关闭后不允许修改),多次读取
  • 周期性(1小时)报告块的状态
  • 周期性(3秒)向namenode报告心跳,nn10分钟没有接受,提出集群
  • 在线加入/卸载服务器

safemode安全模式

安全模式HDFS变成只读(readonly)

启动safemode的情况

  1. 在namenode启动过程中,datanode向namenode注册
  2. dfs.namenode.safemode.threshold-pct 默认值0.999f 好的块/总的块<0.999f

HDFS特性

  • 存储大,动态扩展
  • 运行在普通的商用服务器(容错性高)
  • 副本数,保证数据安全
  • 一次写入,多次读取
  • 不适合修改比较频繁的 业务
  • 适合存储大文件,不适合存储太多小文件
posted @ 2016-04-19 14:43  java狗  阅读(196)  评论(0)    收藏  举报