08 2012 档案

摘要:DateNode的功能主要分为三大类:和DFSClient的交互;和NameNode的交互;本身提供数据存储的功能。 DataNode引用了FSDataset来提供数据存储功能,FSDataset是这个存储结构的入口,对于DataNode上面所有的Block的操作都要经过FSDataset,由此管理在此DataNode上存储的block。FSDataset的类图如下:DataStorageDataStorage主要提供存储元信息,如文件目录,存储目录的状态转移管理,Version文件等等。DataStorage内部有一个List<StorageDirectory>数据结构,表示此D 阅读全文
posted @ 2012-08-10 10:58 nod0620 阅读(1276) 评论(0) 推荐(0)
摘要:DataNode查看他的属性,可以分成以下几个方面:1.offerService()方法,此方法在DataNode主循环中执行,做的事情包括和NameNode心跳交互;通知NameNode一段时间以来收到的block;本机block的报告2.DataXceiverServer,主要处理block的读写3.BlockScanner,对本机block的扫描和校验处理4.FSDataset,本机block存储的入口5.ipcServer,主要是DataNode和DataNode之间recover block时使用。这里主要说明第1点,其它几点在另外一文中已经介绍过,offerService的主要流程 阅读全文
posted @ 2012-08-10 10:41 nod0620 阅读(5461) 评论(0) 推荐(0)
摘要:首先DataNode自身就是一个Runnable的实现,也就是说DataNode是以一个单独的线程在运行着的。DataXceiverServer,DataXceiverDataNode在Block的数据流读写方面都交给了DataXceiverServer,DataXceiverServer也是运行在一个单独的线程当中,在主循环当中阻塞监听dfs.datanode.address配置的端口号,当有连接过来时,新建一个DataXceiver实例,并且在单独的线程当中运行DataXceiver。DataXceiver根据前面建立的Socket,建立DataInputStream,读取请求的操作,请. 阅读全文
posted @ 2012-08-07 14:30 nod0620 阅读(1398) 评论(0) 推荐(0)