- 博客(15)
- 资源 (14)
- 收藏
- 关注
原创 Hadoop-0.20.0源代码分析(15)
我们已经分析了org.apache.hadoop.hdfs.server.namenode.Namenode类的实现,而且知道,一个Namenode提供的主要服务是基于其内部定义的org.apache.hadoop.hdfs.server.namenode.FSNamesystem属性来实现的。可见,org.apache.hadoop.hdfs.server.namenode.FSNamesyst
2009-09-28 21:41:00 5706
原创 Hadoop-0.20.0源代码分析(14)
Hadoop集群中,不同进程之间通信需要使用合适的协议才能够进行交互,之前对Hadoop给出的协议接口做了分析。在协议接口中约定了通信双方的特定行为,那么,在实现这些通信协议的实现类中,就能看到指定进程是如何实现协议接口中约定的行为的。这里,阅读分析org.apache.hadoop.hdfs.server.namenode.Namenode实现类。首先,看一下Namenode类实现的接口,下
2009-09-28 18:53:00 4757
原创 Hadoop-0.20.0源代码分析(13)
通过对org.apache.hadoop.ipc包中,Hadoop实现了基于IPC模型的RPC机制,可以不需要像Java中实现的RMI机制一样,在RPC调用的C/S两端分别创建Stub和Skeleton,而是通过一组协议来进行RPC调用就可以实现通信。这主要是由于Hadoop所采用的序列化机制简化了RPC调用的复杂性。Hadoop定义了自己的通信协议,这些协议都是建立在TCP/IP协议之上的,规范
2009-09-28 11:31:00 4904 1
原创 Hadoop-0.20.0源代码分析(12)
在org.apache.hadoop.ipc包中,Server类是一个抽象类,抽象了IPC模型中Server端的基本行为。下面对RPC类进行阅读分析。RPC类给出了一个简单的RPC机制,它的协议是基于一个Java接口,协议界定,所有的参数和返回类型必须是下面之一:1、一个基本类型:boolean、byte、char、short、int、long、float、double,或void;2
2009-09-26 20:10:00 3796 2
原创 Hadoop-0.20.0源代码分析(11)
这里分析一下IPC模型中的Server端的实现。该Server类的实现有点复杂,而且涉及到网络中字节流缓冲区的操作问题,及其字节数据的反序列化。Server类该Server是服务端的抽象实现,定义了一个抽象的IPC服务。 该IPC服务器接收Client发送的参数值,并返回响应值。同时,作为IPC模型的服务端,它要维护Client端到Server端的一组连接。首先看Server类定义的几
2009-09-26 19:24:00 3994 1
原创 Hadoop-0.20.0源代码分析(10)
DFSClient是分布式文件系统客户端,它能够连接到Hadoop文件系统执行指定任务,那么它要与Namenode与Datanode基于一定的协议来进行通信。这个通信过程中,涉及到不同进程之间的通信。在org.apache.hadoop.ipc包中,定义了进程间通信的Client端与Server端的抽象,也就是基于C/S模式进行通信。这里先对org.apache.hadoop.ipc包中有关类的源
2009-09-25 17:23:00 4441 1
原创 Hadoop-0.20.0源代码分析(09)
通过前面,对Hadoop的org.apache.hadoop.fs包中内容进行分析,已经基本了解到,一个文件系统应该具备哪些基本要素和基本操作。最显著的一个特点就是,FileSystem文件系统是基于流式数据访问的,并且,可以基于命令行的方式来对文件系统的文件进行管理与操作。而且,基于FileSystem文件系统的抽象定义,我们可以了解到,继承自该抽象的一切具体实现的文件系统,都具有统一的文件访问
2009-09-24 21:21:00 4054
原创 Hadoop-0.20.0源代码分析(08)
这里,继续对FsShell类中一些命令进行阅读分析,主要是看与拷贝文件有关的几个命令。cp命令该命令实现对文件的拷贝操作,并且支持在不同的文件系统之间进行文件的拷贝。拷贝文件涉及的操作比较复杂,核心拷贝操作还是调用了org.apache.hadoop.fs.FileUtil类的copy方法实现的。 先看该类中定义的其中一个copy方法的实现: private int copy
2009-09-23 20:48:00 3924 1
原创 Hadoop-0.20.0源代码分析(07)
前面分析了与操作系统有关的Shell命令,它们用于与操作系统进行命令行方式的交互。在Hadoop中,自定义了FileSystem文件系统,这是基于Unix操作系统之上的文件系统,为了方便对FileSystem的管理,通过org.apache.hadoop.fs.FsShell类定义了对Hadoop FileSystem文件系统进行命令行方式管理的命令实现。先给出对Hadoop文件系统进行管理的
2009-09-22 21:45:00 5422
原创 Hadoop-0.20.0源代码分析(06)
在阅读Hadoop源代码过程中,在org.apache.hadoop.security.UnixUserGroupInformation类中,需要获取到Unix系统的用户名和所属组的信息,就需要通过执行Shell命令得到相应的结果,这里,通过阅读Hadoop项目org.apache.hadoop.util包、org.apache.hadoop.fs.shell包、org.apache.hadoop
2009-09-22 21:01:00 5998 1
原创 Hadoop-0.20.0源代码分析(05)
以文件流作为一个切面,阅读Hadoop源代码org.apache.hadoop.fs包中源代码。关于流,分为输入流和输出流两种,下面也这样简单划分为两类进行阅读分析。输入流类与输入流相关的接口和类的继承层次关系如下所示:◦java.io.InputStream(java.io.Closeable) ◦java.io.FilterInputStream ◦ja
2009-09-21 19:05:00 6596
原创 Hadoop-0.20.0源代码分析(04)
前面,分析了org.apache.hadoop.fs.Filesystem抽象类,我们已经了解到,要实现一个最基本的文件系统都需要包含哪些要点。下面具体到某个实现Filesystem的具体实现类,基于该抽象类Filesystem派生的类的继承关系: ◦org.apache.hadoop.fs.FileSystem (implements java.io.Closeable)
2009-09-21 02:41:00 7304
原创 Hadoop-0.20.0源代码分析(03)
在Hadoop框架源代码org.apache.hadoop.fs包中,都是关于Hadoop文件系统实现的相关类,主要包括文件系统模型的建立,及其在该文件系统定义、实现基本的文件操作。例如给出文件系统抽象,对文件系统上存储的文件执行基本操作进行抽象,等等。在该包中,类的继承关系如下所示:◦java.lang.Object ◦org.apache.hadoop.fs.BlockLoc
2009-09-20 14:11:00 7175 1
原创 Hadoop-0.20.0源代码分析(02)
UserGroupInformation类定义了一个与文件系统相关的用户和组信息抽象的内容,Hadoop框架实现了一个基于Unix系统的用户和组信息的实现类UnixUserGroupInformation,该类继承自UserGroupInformation抽象类。从UserGroupInformation抽象类与其子类UnixUserGroupInformation的属性字段可以看出,抽象类所
2009-09-19 23:59:00 6391
原创 Hadoop-0.20.0源代码分析(01)
Hadoop 框架是两个模型实现的有机整合,亦即Hadoop分布式文件系统(HDFS)与MapReduce并行编程模型,也就是说,Hadoop框架要能够提供的基本功能就是,在存储系统HDFS上进行MapReduce并行计算,所以,如果想要了解Hadoop框架的工作原理和运行机制,主要从这两个方面着手。其实,Hadoop中MapReduce并行计算应该是在HDFS实现的,因此了解计算所基于HDF
2009-09-19 13:08:00 16121 2
C++程序设计语言.第4部分.标准库.第4版[中文完整高清版]
2017-11-03
Scala: High Performance Programming
2017-10-13
apache_hbase_reference_guide-3.0.0-SNAPSHOT
2017-09-22
The Java Virtual Machine Specification Java SE 7 Edition
2014-04-27
搜索引擎中的数据存储问题研究
2009-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人