存档

文章标签 ‘hdfs’

HDFS ZKFC手记

2013年6月13日 6 条评论

1.基本原理

zk的基本特性:
(1) 可靠存储小量数据且提供强一致性
(2) ephemeral node, 在创建它的客户端关闭后,可以自动删除
(3) 对于node状态的变化,可以提供异步的通知(watcher)

zk在zkfc中可以提供的功能:
(1) Failure detector: 及时发现出故障的NN,并通知zkfc
(2) Active node locator: 帮助客户端定位哪个是Active的NN
(3) Mutual exclusion of active state: 保证某一时刻只有一个Active的NN

2. 模块

(1) ZKFailoverController(DFSZKFailoverController): 驱动整个ZKFC的运转,通过向HealthMonitor和ActiveStandbyElector注册回调函数的方式,subscribe HealthMonitor和ActiveStandbyElector的事件,并做相应的处理
(2) HealthMonitor: 定期check NN的健康状况,在NN健康状况发生变化时,通过回调函数把变化通知给ZKFailoverController
(3) ActiveStandbyElector: 管理NN在zookeeper上的状态,zookeeper上对应node的结点发生变化时,通过回调函数把变化通知给ZKFailoverController
(4) FailoverController: 提供做graceful failover的相关功能(dfs admin可以通过命令行工具手工发起failover) 阅读全文…

分类: BigData, HDFS 标签: , , ,

HDFS datanode阅读手记

2013年1月28日 没有评论

1. Hign Level Module View

datanode modules

  • HttpServer: 提供http service, 展示内部状态信息
  • IPCServer: Rpc service framework, 模块间的交互都通过rpc来完成(Block数据传输除外)
  • DataXceiverServer: 数据传输server, 提供Block数据的读写修改等功能
  • BlockPoolManager: 提供管理BlockPool的相关API。其中,BlockOfferService为每个Namespace下每个BlockPool一个实例,提供BlockPool对它所对应的Namespace的操作的相关API, BlockServiceActor为指定Namespace中每个namenode一个实例,自已持有线程,定时向它所对应的namenode发heartbeat, blockreport, 并执行namenode通过heartbeat/blockreport response传回来的command
  • FsDataset: 封装了datanode所管理的所有的block相关数据,提供相关的API,其中FsVolume封装了对单块盘的相关的操作
  • 阅读全文…

分类: BigData, HDFS 标签: , ,