00:01
安装完都可之后啊,我们就可以开始对源码进行编译了,那首先呢,我们得有源码对吧,你要做炒菜得先有菜,那这个源码你可以提前下载好,也可以在线下载,这个源码没多大,我们直接通过we get的方式去下载就好了,那我们下载的是最新的0.15.0版本。你也可以去官网直接下。呃,我们下载到OBD soft soft这里吧。好。也就十来秒差不多了,我们看一下。那这个就下载好了。它是一个踏包啊,JZ,那我们直接top杠,JSVF,阿帕奇dori。
01:02
呃,指定目录了。它自带的有一个目录啊。看一下。啊,这是解压完之后的一个目录。检查完之后啊,我们还要去拉取一下docker镜像,就官方提供了一个编译环境,那我们直接用docker pro命令就可以了,那注意我们使用的是0.15对应的一个doer环境啊,那这个废话少说,咱们直接拷贝粘贴这个拉取呢,可能还需要一定的。等他拉拉完吧,你需要稍等一会儿。你看这个环境一共接近一个G啊,就看你网速了,这这玩意儿,那我们先暂停一下,等待一下。
02:00
好,那么现在是拉取完毕了,当大家看到这个complete,对吧,拉取成功之后,那就OK了。那如果中间你卡住不动啊,或者怎么样,你可以取消重新再拉取一下都可以啊,这个跟你的网络环境有关系,那接下来我们就是查看一下拉取好的镜像啊,Docker image。四对吧。然后这里呢,我们能看到这个仓库是属于这个阿帕奇Doris里面的啊,这个I有个ID,我们主要看的是什么,这个tag这一列啊。这个就是我们拉取下来的一个环境,那拉取完之后,我们就要运行这个环境,启动这个容器。或者也不叫启动,就进入这个环境里面去进入这个镜像,那那这边我们。用了一个方式啊叫挂载目录,那首先我们。
03:02
去执行镜像,启动镜像的时候是用docker run,然后后面跟上一些镜像的名称,对吧,那我们中间又用了杠V来指定一个挂载目录,挂载的是什么东西呢?第一个东西。是我们的maven的本地仓库,我们在我们这个镜像内部啊,它是也已经有了ma环境,那在我们的编译过程中。肯定涉及到一些本地仓库要下载依赖吧,对吧,那比如说你这次编译的一个小时啊,中间依赖下载了很多,然后失败。那你再重新执行。很可能就没有了那些依赖,还要重新下载,那这样效率就比较低了,那所以我们将docker里面的maven仓库路径。将它挂载到,呃,我们服务器上面的具体路径下面。也就是说啊。
04:00
他用的这个目录路径,实际上用的是我们宿主机的一个路径,那这边大家可以看到这个杠V命令是这样啊,它中间以冒号分格,那么右边右边这个呢,是一个都可的都可里边的路径,那左边呢,是我们服务器的或者说我们宿主机的一个路径。能理解吧,也就是说啊,就一个映射关系嘛,这是第一个maven的本地仓库地址,第二一个呢。或是我们会将源码编译完成。编译完成的那个二进制包的那个路径。或者说我们直接啊,将这个源码整个文件夹。跟这个。映射起来,那我们可以看到一样的啊杠V。哎,然后找冒号,冒号的右边我们说的是docker的地址对吧,Doer地址是root下面的这个文件夹,那我们挂载到我们服务器上面具体的路径下面,他们就形成了一个映射关系啊。
05:15
那这样我们回头编译完成啊,编译完成它是不是得生成一个编译好的文件呢?二进制文件对吧,那这个时候即使都可说呃不在了,怎么样,无所谓,我们这个本地的宿主机的文件系统里面还有啊。好,废话少说了,那我们执行一下。挂载一下。那这个时候呢,大家可以注意看,我们执行的是都可命对吧,那你看这里变成了什么。是不是一堆字母跟数字对吧,那这个时候就表示我们已经进入了这个都可的镜像里面了,那这个时候你来看,比如说is。
06:01
D到D,你看当前是在root下面,那我们来看看这里又有什么东西呢?来一堆东西对吧,我们看看OPTOPT下面有什么对吧?这个跟我原来机器上的不一样吧,对吧?给大家对比一下。这个是我的哈杜一这台机器啊,我进入到OPT目录下面啊,大家看一下。我是不是有这几个文件文件夹,那再切回来看一眼,是不是不一样的对吧。那同时呢,我们看一下,呃,我们回到那个加目录,入目录下面,那我们可以看到这里有一个什么路径啊。是不是这个源码的这个文件夹在这里啊,为什么?因为我将它挂载到了宿主机的一个路径下,那宿主机的路径是什么,大家注意看。
07:07
而这。这个是我们都里面的。一个路径,我将它挂载到这个路径下面了。啊,所以它这里直接就有了,我们看一下它有没有东西啊,你看这里面是不是也都有啊,文件啥的都有对吧,那为什么有呢?因为我挂载路径是不是这个,这是宿主机对吧?OPT,然后呢,Soft。然后呢,是不是有一个阿帕奇,呃,Doris,我们之前解压的源码。对吧,那你看。是不是也是这么一点东西。对吧,好,那接下来呢,我们要做什么事呢?其实就是执行它里边的一个编译脚本就行。
08:06
就是哪一个呢?BSH执行它就OK了,但在执行之前我们要干几个事儿啊,首先第一个JDK的版本,由于我实际服务器也就哈杜一这一台啊。大家可以看一下我的Java,我用的是1.8的,也就ZDK8的,但是我们这个容器默认呢,你看一下E口do加号后,它是什么呢?默认指向的是JDK11啊JAVA11,那我们肯定要切换成我们自己机器的环境,对吧。啊,版本要对应,那我们直接用它的一个命令去切就可以了,这个镜像里面本身也包含JDK8,我们切一下就可以了,好回车。
09:00
合成。好,接下来我们再来看一下,掌握后,你看现在就切换成了JDK8了。做完这个事儿之后啊,那还可以做一个事儿,因为我们一开始编译啊,需要下载很多很多的依赖,这中间可能比较浪费时间啊,时间特别长,你快一点可能半个小时到一个小时,慢一点可能就几个小时了,看你的网络情况,而且呢经常下载失败,那为了方便呢。我们之前不是已经将这个main依赖的地址映射了吗?我是不是只需要把需要的依赖提前解压到这个路径下就OK了?对吧。那这边我已经给大家提前准备好了,在给到大家的这个资料里面有一个,这是我打的一个包。
10:00
那很简单来,我们只需要把它上传解压到跟我们挂载的路径一样的地方就可以了。呃,CDPD3。把他拉过来。啊,这个有点大啊,也不大。稍等一会儿。我们可以先来看一下吧。你看这里有一个点M2对吧,CD.m2。你看这里现在是空的,对吧,现在完全是空的。我们好了。现在退出来,我在路径下已经上传了我们的这个包。
11:01
那我直接将它解压就可以了,这we do report。呃,就是当前路径啊,就是当前路径。O BT word嘛,对吧,然后点M2,那这个压缩包里面已经包含了点M2这个路径了啊,所以你直接解压就可以了。或者你杠CD,说白了你解压到哪呢?解压到你挂载的这个路径的上一级,就解压到这里就可以了,点M2是携带的。啊啊,权限不够啊,等等一下,哎呀。太多了啊。我用root。OB,对吧,解压do report啊,也不用杠C了,当前路径就可以了啊,我写一下吧。
12:15
稍等一下啊。好,解压完毕了,接下来我们再来看一下R-A对吧,这个点M2。哎,CD.mr进来之后,大家看一下是不是多了呀?对吧。是不是又多了一个文件夹,好再进去,你再看这边就是。我提前下载好的一些依赖,这样呢就可以省去一些时间,那我们也可以进入到容器里面,你看当前是容器对吧,镜像里面啊,往后退一下。呃,这里就是杠root对吧,那我们这里应该有一个文件夹是点2.2进来之后看一眼,你看是不是它这里也能查到这个,因为他们是映射关系,对吧,你看一样的吧。
13:07
好行,废话少说,那我们接下来进入到一个源码的目录啊,阿帕奇do RC,那么接下来我们只需要执行这个脚本就可以了。那一切就等待就可以了,那如果你是第一次执行,一定要注意啊,第一次执行你要加这个东西。加一个杠杠,Clean。因为在Doris0.15版本,它的镜像升级的一个thrift,那我们第一次执行的话,要通过clean命令,Clean命令强制使用新版本的。这样才不否则啊,会出现一个不兼容的问题啊,啊直接拷贝就可以了。啊,这是容器啊,然后圆满路径对吧,好。哎,没卡没上好回车。
14:07
那你看Python这个容器也携带了应该有的一些东西了,那接下来我们要做的就是等待了。如果你之前已经提前将美美的一些依赖都准备好,应该,呃。挺快的,应该挺快的,那么大家可以看到它要编译几个文件,747个文件,那我们稍等一会儿,我先将视频暂停一下。好,那我们看到已经编译完成了,对吧,那这个时间呢,如果你是第一次编译,可能时间会比较久一点。而且呢,咱们这儿不是用了一个clean嘛,对吧,相对来说时间会比较久,那如果你编译过程中出现的一些异常。比如说你磁盘不够了,失败了,你要重新再编译,你就之后就用这个命令就可以了啊,就不要再去清除了,那这样速度会快一点,整体呢,要看你的一个机器性能和网络情况啊,时间也不会太久,那大家可以看到我这边大概用的是五分钟,但实际时间比较久一点,那么看一下这个需要多大吧,呃,我们来到宿主机挂载的目录看就行了啊o software阿帕奇dori。
15:24
啊,编译成功之后啊,它会生成一个output。啊,大家看这。在哪?哎,它会生成一个output文件夹CD output。你看这里包含了什么,一个be,一个fe,还有一个所谓udf啊,那这玩意儿就编译好了,核心模块be跟fe,那我们看一下多大。呃,第一,然后呢,看一下output这个就行。这个大概是两个G。
16:02
好吧,那同样的我们容器里面也是有的,对吧,容器里面不也是也有个output。S on foot。看一下。也是一样的b fe啊,那而且我们是用挂载的方式,就不需要再说从容器里面拷贝出来了,因为啊,这个目录本身就在宿主机里面啊,也就刚才这个地方你看。尽量啊,本身就是我挂载的这个路径下面啊,然后也有一个output,那这样就行了,这就成功编译完成了。
我来说两句