Hadoop学习笔记,HDFS体系结构

一、Namenode

1.1 管理文件系统的命名空间操作

  打开、关闭、重命名文件活着目录

1.2 记录每个文件数据块在各个Datanode上的位置和副本信息

1.3 协调客户端对文件的访问

  类似起到目录的作用

1.4 记录命名空间内的改动或空间本身属性空间本身属性的改动

  比如权限

1.5 Namenode使用事物日志记录HDFS元数据的变化

  使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等等

二、Datanode

2.1  负责所在物理节点的存储管理

2.2 一次写入,多次读取

  不需要考虑一致性(一致性:多个人同时修改,到底采用哪个人的修改)

2.3 文件由数据块文件组成

  一般数据块大小是64M

三、HDFS的可靠性

3.1 副本策略

  3.1.1 复制因子:在hdfs-site.xml设置复制因子的数量,越大越安全,不过越大速度越慢,空间利用率越低

  3.1.2 汇报策略:Datanode启动时候,会将数据块和本地文件的对应关系列表汇报给Namenode

3.2 机架感知

  一般本机架存放一个副本,其他机架再存放另外一个副本

3.3 心跳机制

  Namenode会周期行的从datanode接收心跳信号和块报告,如果与自己记录的信息不一致,那么会采取策略

3.4 安全模式

  Namenode启动的时候,会经过一个“安全模式”阶段,在此阶段收集datanode的报告,当数据块达到最小副本数量以上才会启动,否则会复制

3.5 校验和

  校验文件使用的

3.6 回收站

  当我们删除一个文件时候,不会物理删除,而是放入回收站。这都可以设置时间阀值,当回收站里面的文件超过这个阀值,就会彻底被删除

3.7 元数据保护

  元数据包括影像文件和事物日志两部分,他是Hadoop的核心,这个可以配置拥有多少副本。Namenode在一个物理服务器上,还是单点的

3.8 快照

  当前尚不支持,已经列入计划

四、HDFS文件的操作

4.1 命令行方式

  事例:hadoop fs -ls /user/ticketdev/hive/warehouse/business_mirror.db/

  上面的命令等于:hadoop fs -ls hive/warehouse/business_mirror.db/

  也可以查看集群的使用情况

[~]$ hadoop dfsadmin -report

Configured Capacity: 7071155845193728 (6.28 PB)
Present Capacity: 7057854001847953 (6.27 PB)
DFS Remaining: 2809033405625391 (2.49 PB)
DFS Used: 4248820596222562 (3.77 PB)
DFS Used%: 60.20%
Under replicated blocks: 0
Blocks with corrupt replicas: 6
Missing blocks: 0

 

添加新的节点,是否需要重启Namenode?

  不需要,启动datanode和tasktracker即可。如果想要立刻将这台服务器加入到集群里面,分担数据压力,也可以启动均衡脚本

4.2 API方式

  java提供的api的方式

 

你可能感兴趣的:(hadoop)