hadoop2包结构及包功能大致介绍
来源:互联网 发布:淘宝店铺转让平台 编辑:程序博客网 时间:2024/06/05 15:50
一、概述
hadoop2的设计细想比hadoop1进步了很多,毕竟hadoop1是几年前的东西了。软件设计的理论在这几年中发展很快,出现了很多的软件设计理论 如:领域驱动模型、事件驱动模型、状生命周期管理等,也出现了很多的开源的解决方案,当然开源的方案很多都是起源apache社区。在hadoop2中,采取了maven的工程管理结构,把以前的单一工程换成了多工程结构模式,现在估计有45个(pom.xml文件的个数)project,以后会不会更多或者合并一些,这个就要持续关注hadoop开源社区的发展了。当然project也不是越多越好,我见过的最多的包工程有几百个,eclipse刷新的时候就需要几个小时,这个对于开发效能是一个极大的挑战。一般的项目的project个数大约在10个左右。hadoop大约有45个,我感觉有点多,当然hadoop2把project合理的分层了,这个确实是非常清晰的。
关于多个project的好处,我认为主要是:其一project之间的依赖的关系是单向的,包之间的功能是隔离的,这个不同于package,package是可以互相依赖的,对于隔离主要看设计者;其二就是管理方便,开发方便。
二、hadoop2工程分析
我们接下来对release-2.0.0-alpha分析,源码来自:http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.0.0-alpha,其他的一些版本包会有一些变化。
分析的工具是:structure101,可以google看下。
第一层:hadoop主要有四部分:hadoop-common-project、hadoop-hdfs-project、hadoop-mapreduce、hadoop-tools。他们之间的依赖关系如下图1所示:
图1
每部分的功能从名称就看得出来,这样的依赖关系很清晰。我们将从低往上去看下依赖关系。
第二层:图2展示了第二层的结构。
图2
我们可以看出四个包的下属工程,其中hadoop-mapreduce的工程hadoop-yarn有一个向上依赖hadoop-mapreduce-client 依赖是pom.xml的scope为test的依赖。我认为这个也是不对的,应该是去掉。 tools工程下面的子工程互相之间是独立的,因为他们都是工程包。
第三层:我们再看下其中hadoop-yarn与hadoop-mapreduce-client,如图3所示:
图3
我们看到hadoop-yarn还是很清楚的。对于hadoop-mapreduce-client有6个project不过还是比较清楚。
第四层:看下 hadoop-yarn-server下属的包,建图4
图4
在此图中,我们看到了 hadoop-yarn-server-namemanger及hadoop-yarn-server-resourcemanager,在计算中,也就是这两大守护进程了。
- hadoop2包结构及包功能大致介绍
- hadoop2包结构及包功能大致介绍
- hadoop 2 包结构及包功能大致介绍
- ROS功能包文件结构及命令
- ROM包结构介绍
- JAVA3D包功能介绍
- Hadoop2.0.3-alpha包结构分析
- Hadoop2.0安装包目录结构分析
- USB的包结构及包分类
- Android API包名及包的功能的中文介绍
- Android API包名及包的功能的中文介绍
- maven包结构及作用
- 部分jar包及功能
- Hadoop2.0.0-CDH4.3.0的部署包的文件结构
- julia hadoop2包安装
- Android 各API包功能介绍
- hutool java工具架包功能介绍
- hibernate大致的源代码包功能分析:
- 设计模式之五 ------Prototype(原型)
- android 进度条
- NYOJ - 两点距离
- 知乎的报错方式,我喜欢
- Python用ConfigParser解析INI配置文件
- hadoop2包结构及包功能大致介绍
- LDD3学习-第十章-中断处理<一>
- POJ 1770 Special Experiment
- 蚂蚁的天堂
- 关于说课的问题
- 删除oracle 11g的警告日志和监听日志
- java 语法练习题
- 前端开发文章链接
- C语言中一维指针与二维指针的转化