
Hadoop
文章平均质量分 81
turinglife
家中带娃,闲着没事,记录点小东西。
展开
-
Hadoop-0.20.0源代码分析(03)
在Hadoop框架源代码org.apache.hadoop.fs包中,都是关于Hadoop文件系统实现的相关类,主要包括文件系统模型的建立,及其在该文件系统定义、实现基本的文件操作。例如给出文件系统抽象,对文件系统上存储的文件执行基本操作进行抽象,等等。在该包中,类的继承关系如下所示:[java] view plaincopy◦jav转载 2012-02-21 22:26:48 · 643 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(09)
通过前面,对Hadoop的org.apache.hadoop.fs包中内容进行分析,已经基本了解到,一个文件系统应该具备哪些基本要素和基本操作。最显著的一个特点就是,FileSystem文件系统是基于流式数据访问的,并且,可以基于命令行的方式来对文件系统的文件进行管理与操作。而且,基于FileSystem文件系统的抽象定义,我们可以了解到,继承自该抽象的一切具体实现的文件系统,都具有统一的文件访问转载 2012-02-21 22:31:00 · 427 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(08)
这里,继续对FsShell类中一些命令进行阅读分析,主要是看与拷贝文件有关的几个命令。cp命令该命令实现对文件的拷贝操作,并且支持在不同的文件系统之间进行文件的拷贝。拷贝文件涉及的操作比较复杂,核心拷贝操作还是调用了org.apache.hadoop.fs.FileUtil类的copy方法实现的。 先看该类中定义的其中一个copy方法的实现:[java] v转载 2012-02-21 22:30:35 · 596 阅读 · 0 评论 -
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转载 2012-02-21 22:29:04 · 763 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(05)
以文件流作为一个切面,阅读Hadoop源代码org.apache.hadoop.fs包中源代码。关于流,分为输入流和输出流两种,下面也这样简单划分为两类进行阅读分析。输入流类与输入流相关的接口和类的继承层次关系如下所示:[java] view plaincopy◦java.io.InputStream(java.io.Clos转载 2012-02-21 22:28:29 · 705 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(04)
前面,分析了org.apache.hadoop.fs.Filesystem抽象类,我们已经了解到,要实现一个最基本的文件系统都需要包含哪些要点。下面具体到某个实现Filesystem的具体实现类,基于该抽象类Filesystem派生的类的继承关系:[java] view plaincopy◦org.apache.hadoop.fs.FileS转载 2012-02-21 22:27:56 · 689 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(02)
UserGroupInformation类定义了一个与文件系统相关的用户和组信息抽象的内容,Hadoop框架实现了一个基于Unix系统的用户和组信息的实现类UnixUserGroupInformation,该类继承自UserGroupInformation抽象类。从UserGroupInformation抽象类与其子类UnixUserGroupInformation的属性字段可以看出,抽象转载 2012-02-21 22:26:08 · 465 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(01)
Hadoop 框架是两个模型实现的有机整合,亦即Hadoop分布式文件系统(HDFS)与MapReduce并行编程模型,也就是说,Hadoop框架要能够提供的基本功能就是,在存储系统HDFS上进行MapReduce并行计算,所以,如果想要了解Hadoop框架的工作原理和运行机制,主要从这两个方面着手。其实,Hadoop中MapReduce并行计算应该是在HDFS实现的,因此了解计算所基于H转载 2012-02-21 22:25:14 · 592 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(10)
DFSClient是分布式文件系统客户端,它能够连接到Hadoop文件系统执行指定任务,那么它要与Namenode与Datanode基于一定的协议来进行通信。这个通信过程中,涉及到不同进程之间的通信。在org.apache.hadoop.ipc包中,定义了进程间通信的Client端与Server端的抽象,也就是基于C/S模式进行通信。这里先对org.apache.hadoop.ipc包中有关类的源转载 2012-02-21 22:31:31 · 543 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(07)
前面分析了与操作系统有关的Shell命令,它们用于与操作系统进行命令行方式的交互。在Hadoop中,自定义了FileSystem文件系统,这是基于Unix操作系统之上的文件系统,为了方便对FileSystem的管理,通过org.apache.hadoop.fs.FsShell类定义了对Hadoop FileSystem文件系统进行命令行方式管理的命令实现。先给出对Hadoop文件系统进行管转载 2012-02-21 22:29:47 · 838 阅读 · 0 评论 -
Hadoop-0.20.0源代码分析(11)
这里分析一下IPC模型中的Server端的实现。该Server类的实现有点复杂,而且涉及到网络中字节流缓冲区的操作问题,及其字节数据的反序列化。Server类该Server是服务端的抽象实现,定义了一个抽象的IPC服务。 该IPC服务器接收Client发送的参数值,并返回响应值。同时,作为IPC模型的服务端,它要维护Client端到Server端的一组连接。首先看Serve转载 2012-02-21 22:32:09 · 542 阅读 · 0 评论