Skip to content

Commit 9a125be

Browse files
committed
Add new file
1 parent 0b0d000 commit 9a125be

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed

CRH开发说明

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
CRH开发的核心是bigtop开发和ambari开发,目前ambari已集成到bigtop中,对ambari的修改以patch的方式集成到bigtop中。
2+
3+
这里分为两部分说明,分别是ambari开发和bigtop开发,每个部分会说明开发时涉及到的代码模块。
4+
5+
[TOC]
6+
7+
## bigtop开发
8+
9+
bigtop开发涉及到的模块如下:
10+
11+
| 模块 | 说明 |
12+
| --------------- | ------------------ |
13+
| bigtop.bom | 控制组件及版本 |
14+
| packages.gradle | 控制全局参数传递 |
15+
| bigtop-packages | 设计软件包安装细节 |
16+
| build.sh | 自定义的编译入口 |
17+
18+
下面分别对这几部分进行说明。
19+
20+
### bigtop.bom
21+
22+
这个文件控制组件(例如hadoop)的下载地址以及版本信息。
23+
24+
需要注意的全局参数如下:
25+
26+
| 参数 | 说明 | 示例 |
27+
| ------------------- | ------------------------------------------------------------ | --------------------------------------------- |
28+
| crh_version_with_bn | crh安装路径有一部分是版本号组成的,使用这个参数指定,格式参考示例或者代码。 | 6.1.2.6-1457 |
29+
| crh_version_as_name | crh软件包名包含版本号,使用这个参数指定,格式参考示例或者代码。 | -6-1-2-6-1457 |
30+
| crh_tag | crh安装路径有一部分是stack名组成的,这里是crh,目前还未完善,不建议修改。 | crh |
31+
| APACHE_MIRROR | 软件源码包下载路径前缀,和每个组件中指定的路径拼接成完成的源码包下载路径。 | http://compile.redoop.org/redoop/bigtop |
32+
| APACHE_ARCHIVE | 软件源码包存档路径前缀,没有检验效果。 | http://compile.redoop.org/redoop/archive/dist |
33+
34+
需要注意的组件参数如下,建议参考代码理解。
35+
36+
#### name
37+
38+
组件名。
39+
40+
#### version
41+
42+
指定一些版本信息。
43+
44+
base指定软件的版本号;
45+
46+
pkg指定安装包的版本号,一般和base一样;
47+
48+
release使用默认值即可,还没有深入研究。
49+
50+
#### tarball
51+
52+
指定源码包名的一些信息。
53+
54+
destination指定编译前的源码包名;
55+
56+
source指定要下载的源码包名
57+
58+
#### url
59+
60+
指定软件源码包的url信息。
61+
62+
download_path指定软件源码包的部分下载路径;
63+
64+
site拼接软件源码包的下载路径;
65+
66+
archive指定软件源码包的存档路径。
67+
68+
### packages.gradle
69+
70+
主要是传递一些全局参数,也有其他的功能。
71+
72+
这个一般不用修改,如果研究透了,可以尝试按需修改。
73+
74+
### bigtop-packages
75+
76+
这个目录的开发主要包含三块,分别是`common`、`deb`和`rpm`,都在src目录下。
77+
78+
#### common
79+
80+
一些通用的信息文件和脚本文件。
81+
82+
主要文件如下:
83+
84+
| 文件 | 说明 |
85+
| ------------------ | ----------------------------------------------------- |
86+
| do-component-build | 源码的编译逻辑,比如一些mvn相关的命令 |
87+
| install_${name}.sh | 例如,install_hadoop.sh。主要用来设计软件包的安装细节 |
88+
89+
#### deb
90+
91+
有关deb格式软件包的封包逻辑在这里。
92+
93+
#### rpm
94+
95+
有关rpm格式软件包的封包逻辑在这里。这个和common是目前开发的重点。
96+
97+
主要文件是spec文件,这个文件一般在SPECS目录下,比如 hadoop.spec。
98+
99+
这个是标准的spec格式文件,是rpm包的核心文件,网上资料很多,可以自行学习,配合代码理解。
100+
101+
### build.sh
102+
103+
这个文件是我自定义的一个编译入口,是对bigtop编译命令的封装。
104+
105+
106+
107+
## ambari开发
108+
109+
ambari开发主要涉及三部分,分别是`web显示`、`CRH`和`service`。
110+
111+
主要代码都已封装进bigtop/bigtop-packages/common/ambari。在这里面还有一个licenseutils,提供ambari的license支持。
112+
113+
下面分别介绍。
114+
115+
### web显示
116+
117+
这部分主要是ambari登录页和样式的修改,请看custom-style目录。
118+
119+
### CRH
120+
121+
这部分是核心,是CRH在ambari中的核心代码,对应目录是stacks/CRH,其中的6.0这个目录是基本目录,用来和ambari交互,提供其他版本继承。是参照HDP开发的。
122+
123+
### service
124+
125+
这是ambari的一个概念,是一个可插拔的特性,每个组件是一个service,只要放到指定位置,ambari server就可以识别到,可以按需自定义service。开发规范参考ambari官方文档。
126+
127+
128+
129+
130+

0 commit comments

Comments
 (0)