Hadoop HDFS源码学习笔记(八)---HdfsProxy

原创 2012年03月26日 18:10:14

稍微研究了一下HdfsProxy,希望可以了解其机制,简单的实现一个server端

首先看一下其开始的流程图:


在main函数中首先调用了HdfsProxy的createHdfsProxy,在这个函数中new了一个Configuration,然后加载了hdfsproxy-default.xml文件,该文件中有一些基本的配置,需要用户添加,具体用到了什么后边可以看到。

StringUtils.startupShutdownMessage函数主要是用来打开关闭一个LOG的,这里可以不用过多的在意,主要是一个追踪过程

然后new了一个HdfsProxy对象,在构造函数中完成了初始化操作,在这个函数中第一句话就是:

sslAddr = getSslAddr(conf); 

从conf中获得sslAddr

然后是:

String nn = conf.get("hdfsproxy.dfs.namenode.address");

说明在上述提到的xml文件中需要配置namenode的地址

之后根据这个字符串创建了InetSocketAddress,并且new了一个新的configuration,该configuration主要是加载ssl相关的一些配置

然后new了一个ProxyHttpServer对象,传递的参数就是刚创建的sslConf以及从conf中得到的sslAddr

之后就是给这个proxyServer设置一些属性,包括proxy的端口,连接的namenode的地址,当前的conf

然后调用了proxy的addGlobalFilter函数,这个过程主要涉及到hadoop的一些身份认证的过程,暂时不去了解分析,就先放下了

接下来的三句话很关键,在这个proxy中添加注册了不同的servlet,指明了不同的https url的前缀处理的函数不同。

之后就是调用了start函数,开启了server

接下来看一下类图,了解各类之间的关系


HdfsProxy本身并没有做什么事情,它还是使用Hadoop本身的HttpServer,就是增加了一层封装,并且只实现了doGet方法,属于非常简单的server

现在23.1版本的代码不再是使用HdfsProxy,而是一个新的包httpfs,关于这个初步猜测可能是hoop的contribute。暂时没有去分析,以后有机会再说吧 呵呵

相关文章推荐

Hadoop HDFS源码学习笔记(四)

一、首先根据HDFS的API写一段程序,然后是用Eclipse进行debug 单步跟踪,从而查看源码执行流程: import java.net.URI; import org.apache.h...

Hadoop HDFS源码学习笔记(二)

Hadoop文件系统中有一个抽象的文件系统类,HDFS只是其中的一个实现。java抽象类org.apache.hadoop.fs.FileSystem 定义了Hadoop中一个文件系统接口,并且该抽象...

Hadoop HDFS源码学习笔记(六)--fetchBlockByteRange

client端需要从datanode端读取数据,当顺序的读取block的时候,会调用到fetchBlockByteRange函数,该函数中,有一个死循环,在循环内部首先使用函数getBlockAt()...

Hadoop HDFS源码学习笔记(一)

其实我很害怕阅读源代码,不过得克服自己的恐惧感,所以打算开始阅读HDFS的源码,学习它主要有需要两个方法配合使用一是阅读源码,找到入口函数,然后根据一步步的跳转和关键数据结构的学习来了解 二是运行源码...

Hadoop HDFS源码学习笔记(三)

继续上一篇blog,进一步分析FileSystem的API,并完善类图 3、write 数据 FileSystem类有一系列的create方法,其中简单的方法就是给定一个Path对象,然后...

大数据学习笔记2--hdfs工作原理及源码分析

windows下配置hadoop hadoop 安装包解压,路径不要有特殊字符 lib和bin直接解压出来的不可用,需要自己重新编译 配置环境变量:HADOOP_HOME,path中添加:bin目录 ...

《Hadoop 2.X HDFS源码剖析》读书笔记(Client)

1. DSFClient实现对于管理文件/目录以及管理与配置HDFS系统这两个功能,DFSClient并不需要与Datanode交互,而是直接通过远程接口ClientProtocol调用Namenod...

《Hadoop 2.X HDFS源码剖析》读书笔记(DataNode)

1. Datanode逻辑结构1.1 HDFS FederationFederation的HDFS集群可以定义多个Namenode/Namespace,这些Namenode之间是互相独立的,它们各自分...

《Hadoop 2.X HDFS源码剖析》读书笔记(NameNode)

1. 文件系统目录树FSDirectoryHDFS文件系统的命名空间是以“/”为根的整个目录树,是通过FSDirectory类来管理的。FSNamesystem也提供了管理目录树结构的方法,当FSNa...

《Hadoop 2.X HDFS源码剖析》读书笔记(RPC)

1. HDFS概述1.1 体系结构HDFS是一个主从(Master/Slave)体系结构的分布式系统。Namenode是HDFS的Master节点,负责管理文件系统的命名空间(namespace),以...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop HDFS源码学习笔记(八)---HdfsProxy
举报原因:
原因补充:

(最多只允许输入30个字)