Hadoop
文章平均质量分 78
zhangchunminggucas
这个作者很懒,什么都没留下…
展开
-
HDFS1.0源代码解析—DataNode数据接收线程DataXceiverServer与DataXceiver解析
在介绍DataXceiverServer线程之前首先介绍一下,DN启动后一直执行的线程(也就是服务线程)哪些。首选DN本身就是一个线程类,该线程必然会一直执行。在DN的run方法中 1432 // start dataXceiveServer 1433 dataXceiverServer.start(); 1434 ipcServer.start(); 可以看出会启动原创 2012-07-18 21:45:49 · 3176 阅读 · 0 评论 -
HDFS1.0源代码解析—DataNode端数据存储和管理DataStorage和FSDataset解析
本部分主要介绍DN中的数据的存储和管理,我们知道从逻辑上来看我们把数据存储到HDFS这个文件系统中,但是具体数据在每个DN上是如何存储的呢,这其中就牵扯到几个比较大的类DataStorage、Storage、FSDataset等等。一开始读DN源代码这部分就搞得不是很清楚,现在理一下思路,也算给刚开始看得童鞋一些提示。 在配置hdfs-site.xml的时候我们会配置这样一个选项 16原创 2012-07-16 16:32:50 · 3910 阅读 · 0 评论 -
HDFS1.0源代码解析—Hadoop的RPC机制之Server端解析
上一篇博客中结合DN的应用简单的介绍了一下Hadoop RPC中client端的基本执行流程,算是给大家阅读源代码的一点提示吧。本文将对RPC的Server端的机制做一下简单的分析,但愿对大家的理解有所帮助,也算是对自己工作的一点总结。 按照惯例先来看一下Server类主要的组成部分Listener、Handler、Responser,通过名字很容易看出Server功能由三部分构成,负责获取用户原创 2012-07-10 00:18:42 · 2807 阅读 · 2 评论 -
HDFS1.0源代码解析—Hadoop的RPC机制之Client解析
好久没有更新Hadoop相关的博客了,实在是各种压力缠身,各种东西都没准备好,面对即将找工作有点没有了节奏。 ok,开始说说今天的主题Hadoop的RPC机制,之所以在HDFS源码解析的系列中添加这部分的内容,是因为DN和NN交互使用的就是RPC的机制,而RPC机制这部分代码年前也是比较深入的研究过,但是是模仿RPC的机制进行分布式检索的实现。 开始先介绍一下RPC几个主要的组成类RPC.ja原创 2012-07-07 00:38:28 · 6771 阅读 · 4 评论 -
HDFS1.0源代码解析—DataNode类主要数据成员和函数
DataNode.java主要包含三个类DataNode主类、DataTransfer和BlockRecord辅助类。 一、看主类DataNode: 1、主要的数据成员 public DatanodeProtocol namenode = null; public FSDatasetInterface data = null; public DatanodeRegistration d原创 2012-05-28 21:07:58 · 1845 阅读 · 0 评论 -
Finding a needle in Haystack:Facebook's photo storage的理解
博客的所有内容都是个人理解,难免有理解错误的地方,欢迎大家多多拍砖! 这是facebook发在OSDI上的一篇论文,讲述了facebook用于存储用户图片的系统Haystack,目前facebook存储了260billion图片,而图片文件显然都是小文件,使用传统的方式存储数量如此巨大的小文件,必然会带了很大的性能问题。 1、元信息数量庞大。因为每一个图片都会当做一个文件进行存储,每个文件都有原创 2012-05-18 14:59:04 · 4863 阅读 · 0 评论 -
HDFS1.0源代码解析—DataNode启动(一)
DataNode的启动实在DataNode.java中进行的,具体启动流程如下: public static void main(String args[]) { secureMain(args, null); } 在secureMain中调用createDataNode方法,该方法 public static DataNode createDataNode(Strin原创 2012-05-03 13:53:07 · 1195 阅读 · 0 评论 -
HDFS1.0源代码解析—DataNode启动(二)
在(一)中介绍了DataNode启动本机需要进行的一些检查和操作,但是作为分布式文件系统HDFS中的一员,启动时还需要启动各种网络服务。 this.registerMXBean(conf); // register the MXBean for DataNode 为DataNode注册MBean,具体MBean的介绍和使用见http://damies.iteye.com/blog/5178原创 2012-05-12 17:02:14 · 2023 阅读 · 0 评论 -
HDFS1.0源代码解析—DataNode状态切换
Hadoop支持软件升级,对于Hadoop这样一个分布式的系统,升级将是一件很复杂的事情。下面介绍升级过程中DataNode的状态切换 首先来看DataNode可能存在的各种状态: FORMAT ("-format"),//格式化,用于系统第一次启动,必须先进行格式 REGULAR ("-regular"),//用于正常启动 UPGRADE ("-upgrade"原创 2012-05-11 09:40:08 · 1166 阅读 · 0 评论 -
HDFS1.0源代码解析—DataNode启动(三)
接下来看一下 processCommand(cmd),NameNode会返回那些指令,DataNode响应的动作。 final static int DNA_UNKNOWN = 0; // unknown action final static int DNA_TRANSFER = 1; // transfer blocks to another datanode,在Dat原创 2012-05-13 14:48:31 · 1738 阅读 · 0 评论 -
HDFS1.0源代码解析—数据传输和接受的类BlockSender和BlockReceiver
本次主要介绍DN端进行数据传输和接受的类BlockSender和BlockReceiver,其中BlockSender是读取DN本地block数据传送回数据请求端,BlockReceiver是接受存储数据,写入到本地的block中。 首选介绍BlockSender的主要函数的作用: 构造函数 94 this.blockLength = datanode.data.getVi原创 2012-07-21 10:59:58 · 2804 阅读 · 0 评论