Hadoop
文章平均质量分 82
我的十六亩三分地
这个作者很懒,什么都没留下…
展开
-
Hadoop环境搭建
如果一直ssh localhost不成功,试试chmod 644 authorized_keys原创 2013-10-27 11:46:33 · 1292 阅读 · 3 评论 -
Hadoop源码分析之IPC中Server端的初始化与启动
Reference:《Hadoop技术内幕:深入理解Hadoop Common和HDFS架构设计与实现原理》原创 2013-12-20 09:23:04 · 3856 阅读 · 2 评论 -
Hadoop源码分析之NameNode的启动与停止
在前面几篇文章中已经分析完了IPC的调用的大致过程,接下来分析NameNode节点的工作过程NameNode节点在HDFS文件系统中只有一个实例,它提供了与多个DataNode实例一起组成了HDFS系统。NameNode节点主要功能是维护着HDFS文件中两个重要的关系:HDFS文件系统的文件目录树,文件的数据块索引(即每个文件对应的数据块列表),数据块和DataNode节点的对应关系(原创 2014-01-07 11:09:56 · 5233 阅读 · 0 评论 -
Hadoop源码分析之IPC连接与方法调用
在上一篇文章Hadoop源码分析之IPC中Server端的初始化与启动中,分析了Server端的初始化和启动过程,Server端调用Server.start()方法启动后,就启动了一个Responser线程,一个Listener线程和多个Handler线程。其中在Listener线程中又有多个Reader线程,那么这些线程间怎样和客户端交互,如何接收数据呢?下面就来分析Hadoop的IPC连接建立原创 2013-12-22 14:48:00 · 2428 阅读 · 0 评论 -
Hadoop源码分析之DateNode的目录构成与类继承结构
在继续分析NameNode启动之前,先看看DateNode与NameNode的目录构成与类继承结构,NameNode与DataNode的启动过程与这些目录结构和类继承结构相关,在启动的过程中会检查目录的状态。这里所分析的类的继承结构是与存储文件相关的类,与数据交换有关的类暂不考虑。原创 2014-01-12 20:52:04 · 3366 阅读 · 0 评论 -
Hadoop源码分析之NameNode的启动与停止(续)
在上一篇文章Hadoop源码分析之NameNode的启动与停止中大致分析了NameNode节点的启动过程,下面来重点分析NameNode启动过程中执行的initialize方法的几个要点。创建FSNamesystem对象NameNode类的实现中,大量的具体调用工作是由FSNamesystem对象完成的,FSNamesystem类是整个名字节点的门面,封装了对HDFS目录操作,数据块块操作原创 2014-01-25 20:40:08 · 2317 阅读 · 0 评论 -
Hadoop源码分析之NameNode的格式化
在配置Hadoop环境后,第一次启动NameNode节点之前,需要使用命令hadoop namenode -format对NameNode节点进行格式化,那么这个格式化的过程是怎么样的呢?这篇文章就来分析NameNode格式化的过程。NameNode节点以参数-format启动之后,会进入NameNode.createNameNode()方法,在这个方法中有一个switch语句,其中有一项就是原创 2014-01-15 21:01:20 · 3233 阅读 · 0 评论 -
Hadoop源码分析之NameNode元数据的存储
在对NameNode节点进行格式化时,调用了FSImage的saveFSImage()方法和FSEditLog.createEditLogFile()存储当前的元数据,启动NameNode节点时,又要从镜像和编辑日志中读取元数据。所以先分析FSImage是如何存储元数据到镜像文件和如何加载元数据到内存的。存储元数据到镜像文件在NameNode运行时会将内存中的元数据信息存储到所指定的文件,原创 2014-01-19 13:39:16 · 6630 阅读 · 0 评论 -
Hadoop源码分析之数据节点的握手,注册,上报数据块和心跳
在上一篇文章Hadoop源码分析之DataNode的启动与停止中分析了DataNode节点的启动大致过程,下面来重点分析DataNode节点中启动过程中的与NameNode节点的几个通信过程。IPC对象创建在DataNode类中有一个成员变量namenode,它是DatanodeProtocol类型,DatanodeProtocol接口是DataNode节点与NameNode节点间进行IP原创 2014-02-21 17:14:26 · 2155 阅读 · 0 评论 -
Hadoop源码分析之DataNode的启动与停止
DataNode的启动分可以为两个部分,创建DataNode对象和启动DataNode节点。DataNode.main()方法会调用DataNode.secureMain()方法,接着在secureMain方法中调用DataNode.createDataNode()方法,createDataNode方法调用了DataNode类中的instantiateDataNode方法和runDatanodeD原创 2014-02-17 17:12:50 · 3248 阅读 · 0 评论 -
Hadoop源码分析之客户端读取HDFS数据
在使用Hadoop的过程中,很容易通过FileSystem类的API来读取HDFS中的文件内容,读取内容的过程是怎样的呢?今天来分析客户端读取HDFS文件的过程原创 2014-03-03 15:10:43 · 3646 阅读 · 0 评论 -
Hadoop源码分析之HDFS客户端的输入流类结构
当从HDFS集群中读取数据到客户端时,就要用到HDFS中的输入流类了,但是这里使用到了DFSInputSteam,FSInputStream,FSDataInputStream,DFSDataInputStream等这些类,如果不了解Java IO类的设计思想,这里很容易看迷糊,为什么用到类这么多*InputStream类?装饰器模式与Java IO中的装饰器模式在Java IO中,也原创 2014-02-28 15:42:36 · 2522 阅读 · 0 评论 -
Hadoop源码分析之客户端向HDFS写数据
分析客户端向HDFS集群中写入文件的过程。原创 2014-03-20 09:01:13 · 4281 阅读 · 0 评论 -
Hadoop源码分析之读文件时NameNode和DataNode的处理过程
客户端在和数据节点建立流式接口的TCP连接,读取文件数据前需要定位数据的位置,所以首先客户端在DFSClient.callGetBlockLocations()方法中调用了远程方法ClientProtocol.getBlockLocations(),调用该方法返回一个LocatedBlocks对象,包含了一系列的LocatedBlock实例,通过这些信息客户端就知道需要到哪些数据节点上去获取数据。这个方法会在NameNode.getBlockLocations()中调用,进而调用FSNamesystem.同原创 2014-03-23 19:46:35 · 2916 阅读 · 0 评论 -
Hadoop源码分析之IPC机制
IPCJava动态代理JavaNIOHadoop IPC接口必须继承自org.apache.hadoop.ipc.VersionedProtocol接口Reference《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》原创 2013-12-19 13:55:59 · 4736 阅读 · 0 评论 -
Hadoop入门实践之从WordCount程序说起
这段时间需要学习Hadoop了,以前一直听说Hadoop,但是从来没有研究过,这几天粗略看完了《Hadoop实战》这本书,对Hadoop编程有了大致的了解。接下来就是多看多写了。以Hadoop自带的例子WordCount程序开始,来记录我的Hadoop学习过程。原创 2013-10-31 16:40:47 · 2951 阅读 · 2 评论 -
Hadoop入门实践之构造模块
上一篇文章我们使用Hadoop编写了一个单词计数程序,下面学习Hadoop的模块的构造,从Hadoop的各种原创 2013-11-01 15:01:26 · 2103 阅读 · 0 评论 -
Hadoop入门实践之类型与格式
在WordCount程序中,输入的是文件,输出的也是文件,那么这些文件的读取和输出是怎么样进行的呢?MapReduce中的map方法和reduce方法的参数类型又是什么类型呢?MapReduce的类型WordCount程序中TokenizerMapper类的父类Mapper是一个范型类型,其定义为:public class Mapper {}它限定了Map处理的类型为K原创 2013-11-07 10:32:36 · 2017 阅读 · 0 评论 -
Hadoop第一个程序,利用API向HDFS中写入数据
参考:http://f.dataguru.cn/thread-85493-1-1.html这时学习Hadoop以来写的第一个成功的程序,程序仿照《Hadoop实战》中的PutMerge程序,这里有几个要注意的地方:1.hdfs的地址是一个网络地址,如下面的:hdfs://localhost:9000/test32.确保不会出现“权限不足”的异常import java.i原创 2013-10-28 15:02:06 · 5327 阅读 · 0 评论 -
Hadoop源码分析之开篇
看Hadoop也有段时间了,刚开始只是学习在Hadoop上跑MapReduce程序,基本的使用方式都已经了解了,但是很多配置方面的还是很模糊,当看到一个模糊的点时,再网上搜又比较费时,所以索引静下心来看看Hadoop的源代码,搞清楚Hadoop内部运作原理。所以就用写博客的方式来记录看Hadoop源码的过程。看Hadoop源码,我会从HDFS开始,首先是HDFS的读写,当然在这个过程中会遇到很原创 2013-12-13 10:28:43 · 1668 阅读 · 0 评论 -
Hadoop源码分析之Configuration
org.apache.hadoop.conf.Configuration类是Hadoop所有功能的基础类,每一种功能执行之前都需要有先得到一个Configuration对象。Hadoop使用了XML文件作为配置文件,来保存运行时的配置信息,然后将配置加载到Configuration对象中,要使用配置信息时直接从Configuration对象中取。Hadoop配置文件将下载的Hadoop原创 2013-12-13 15:20:40 · 3413 阅读 · 0 评论 -
Hadoop源码分析之DistributedFileSystem
在上一篇博文Hadoop源码分析之FileSystem中分析了org.apache.hadoop.fs.FileSystem这个类,作为FileSystem的子类,org.apache.hadoop.hdfs.DistributedFileSystem是Hadoop抽象文件系统的一个具体文件系统,当以hdfs模式通过FileSystem.get()获取具体文件系统时,返回一个Distributed原创 2013-12-15 11:46:18 · 6690 阅读 · 0 评论 -
Hadoop源码分析之FileSystem
新建了一个Configuration对象之后,在调用Configuration.get()获取配置键值对时,如果Configuration对象的properities为null,就会默认加载CLASSPATH上的默认配置文件(参见 Hadoop源码分析之Configuration),所以在得到一个Configuration对象之后就可以利用这个对象来新建一个FileSystem对象。Hadoo原创 2013-12-14 14:58:46 · 9156 阅读 · 1 评论 -
Hadoop源码分析之IPC服务端连接建立与方法调用
在前面两篇文章中分析了IPC中Server端的初始化与启动和 客户端IPC连接与方法调用下面来分析服务器当客户端进行方法调用时,将数据发送给服务器后,服务器的处理过程。服务器处理过程涉及的了多个线程与类,正式服务器端的各个部分的合作,才使得IPC机制简单且高效。连接建立在org.apache.hadoop.ipc.Client.Connection.setupConnection()方法中原创 2013-12-30 10:57:33 · 2573 阅读 · 0 评论 -
Hadoop源码分析之IPC服务端连接建立与方法调用(续)
在上一篇文章Hadoop源码分析之IPC服务端连接建立与方法调用中分析到了Handler线程的run()方法。在Server.Handler.run()方法中,首先从阻塞队列callQueue中取出一个方法调用对象(Call对象),然后进行方法的调用call()方法返回一个ObjectWritable对象,这个对象包含了方法返回值的类型和具体的返回值。在Server.s原创 2013-12-31 21:25:20 · 1564 阅读 · 0 评论 -
Hadoop源码分析之DFSClient对象的创建
再上一篇文章Hadoop源码分析之DistributedFileSystem中说道:DistributedFileSystem的重点在于其成员变量DFSClient dfs,它执行了文件系统的具体的操作。所以现在就来学习一个DFSClient这个类。再来看看这个图:DFSClient就再HDFS客户端那里,DistributedFileSystem就是通过DFSClient来与Na原创 2013-12-16 21:54:34 · 3324 阅读 · 4 评论 -
Hadoop源码分析之NameNode的目录构成与类继承结构
与DataNode节点类似,NameNode节点也有自己的目录和类继承结构,但是NameNode节点的目录结构比DataNode节点就简单多了,下面就来简单分析NameNode节点的目录构成与类继承结构。NameNode的目录构成在NameNode节点运行时,维护着整个HDFS中的文件及目录信息,如果NameNode出现故障,如掉电或进程崩溃,那么内存中的信息将全部丢失,因此必须将内存中的原创 2014-01-13 21:09:34 · 2171 阅读 · 0 评论