首页 > 代码库 > hadoop2新特性

hadoop2新特性

一 hdfs联邦

1.hdfs两层模型:

namespace

包括目录/文件 和 块 。它支持所有命名空间相关的文件操作,如对文件和目录的增删改查

block storage service

在namenode中块的管理
datanode集群的注册/心跳检测功能等
处理块报告信息和维护块的位置信息
块的位置信息的增删改查
管理块的冗余信息/创建副本/删除多余副本等

存储
datanode提供本地文件系统上块的存储/读写/访问等




2.   1..x hdfs架构的缺陷

整个集群中有且只有一个命名空间

具体看看这里
http://blog.csdn.net/strongerbit/article/details/7013221


3.联邦

使用多个独立的namenode和namespace,每个namenode都是独立的
datanode被所有的namenode使用
每个datanode在所有的namenode上注册,datanode发送心跳信息/块报告到所有namenode,同时执行所有namenode的命令



4.块池

块池是属于单个namespace的一组块
每一个datanode为所有的block pool存储块
datanode是一个物理概念,而block pool是一个 重新将block划分的 逻辑概念
同一个datanode中可以存着属于多个block pool 的块
block pool 允许 一个命名空间 在 不通知其他命名空间 的情况下 为一个新的block 创建 blockID
一个namenode失效不会影响 其下的datanode 为其他namenode服务

5.好处

1. 可以扩展namespace
2.通过增加namenode可解决namenode的单点瓶颈
3.多namenode可以将不同的应用和用户隔离在不同的namespaces

https://issues.apache.org/jira/secure/attachment/12453067/high-level-design.pdf



二 快照

1.基本操作

设置一个目录为可快照
hdfs dfsadmin -allowSnapshot <Path>
取消目录可快照
hdfs dfsadmin -disallowSnapShot <Path>
生成快照
hdfs dfsadmin -createSnapShot <Path> [<snapShotName>]
删除快照
hdfs dfsadmin -deleteSnapShot <Path> snapShotName
列出所有可快照目录
hdfs lsSnapshottableDir
比较快照之间的差异
hdfs snapshotDiffer <path> <fromSnapshot> <toSnapshot>

2.快照位置

listing all the snapshots under a snapshotalble directory
hdfs dfs -ls /foo/.snapshot

listing  the files in snapshot s0:
hdfs dfs -ls/foo/.snapshot/s0

copy a file from snapshot s0:
 hdfs dfs -cp /foo/.snapshot/s0/bar /tmp

hadoop2新特性