Docker编译Doris及flink-doris-connector

本文档主要介绍如何通过源码编译 Doris及flink-doris

这里默认已经安装好了Docker

编译flink-doris 需要先编译Doris,官方说明

注意:

doris源码目录extension/flink-doris-connector/ 这里的flink-doris源码与 GitHub 上下载的 flink-doris 源码似乎有点区别。编译时候注意一下

doris GitHub地址:GitHub - apache/incubator-doris: Apache Doris(Incubating) is an MPP-based interactive SQL data warehousing for reporting and analysis.

doris-flink GitHub 地址:GitHub - apache/incubator-doris-flink-connector: Flink Connector for Apache Doris(incubating)

doris 官网文档:编译 | Apache Doris

1、下载Docker 镜像

先去官网查看版本

Docker编译Doris及flink-doris-connector_第1张图片  

拉取最新版本

docker pull apache/incubator-doris:build-env-ldb-toolchain-latest

可以拉取指定版本

docker pull apache/incubator-doris:build-env-for-0.15.0

注意:

Docker编译Doris及flink-doris-connector_第2张图片

 

镜像下载完成:

docker images

用命令查看是否已经下载好。

这时不要着急运行镜像,这个镜像是编译doris的一个环境,还需要编译的源码。

2、下载源码

先在本地下载源码

1.Doris

先进入本地目录

cd /root/doris
$ wget https://dist.apache.org/repos/dist/dev/incubator/doris/xxx.tar.gz
or
$ git clone https://github.com/apache/incubator-doris.git

如果下载的是压缩包,对下载的源码进行解压

tar -zxf xxx.tar.gz

 2.flink-doris-connector

现在Doris 源码目录下 查找 extension/flink-doris-connector/ 源码目录,如果有该目录说明有fink-doris的源码了,如果没有,需要下载源码,从GitHub上下面,放到该目录,目的是后面挂载的时候这个源码也可以进入docker

3、运行镜像

建议以挂载本地 Doris 源码目录的方式运行镜像,这样编译的产出二进制文件会存储在宿主机中,不会因为镜像退出而消失。

同时,建议同时将镜像中 maven 的 .m2 目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库

本地目录要考虑磁盘空间,最好用磁盘空间大一点的目录

$ docker run -it -v /your/local/.m2:/root/.m2 -v /your/local/incubator-doris-DORIS-x.x.x-release/:/root/incubator-doris-DORIS-x.x.x-release/ apache/incubator-doris:build-env-ldb-toolchain-latest

例如

docker run -it -v /root/.m2:/root/.m2 -v /opt/software/doris/apache-doris-0.15.0-incubating-src:/opt/software/doris/apache-doris-0.15.0-incubating-src apache/incubator-doris:build-env-for-0.15.0

执行完命令后,启动镜像后,你应该已经处于容器内

4、编译Doris

进入到容器内源码目录

执行下面命令

sh build.sh

注意:

如果你是第一次使用 build-env-for-0.15.0 或之后的版本,第一次编译的时候要使用如下命令:

sh build.sh --clean --be --fe --ui

这是因为 build-env-for-0.15.0 版本镜像升级了 thrift(0.9 -> 0.13),需要通过 --clean 命令强制使用新版本的 thrift 生成代码文件,否则会出现不兼容的代码。

编译完成后,产出文件在 output/ 目录中。

5、更改flink 版本 修改成 13.5

当前在容器内操作

进入flink-doris源码目录,修改pom.xml文件


        2.12
        1.13.5
        0.13.0
        5.0.0
        3.8.1
        3.3.0
        3.2.1
        UTF-8
        ${basedir}/../../

修改flink对应版本号,scala对应版本号

6、要将jdk 切回到1.8(docker容器里面操作)

切换到 JDK 8:

$ alternatives --set java java-1.8.0-openjdk.x86_64
$ alternatives --set javac java-1.8.0-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0

7、编译 :doris-flink

在flink-doris源码目录下有 build.sh 脚本

执行命令

sh build.sh

编译成功后,会在 output/ 目录下生成文件 doris-flink-1.0.0-SNAPSHOT.jar

8、备注

  1. doris FE 要在配置中配置启用http v2
  2. Scala版本目前只支持2.12.x版本

conf/fe.conf

enable_http_server_v2 = true

编译doris 报错

Docker编译Doris及flink-doris-connector_第3张图片 

解决方案

Docker编译Doris及flink-doris-connector_第4张图片

修改一个路径

vi fe/pom.xml change 
https://repo.spring.io/plugins-release/
修改为
https://repository.cloudera.com/artifactory/ext-release-local

参考网址:扩展功能 - Flink Doris Connector - 《Apache Doris v0.15 中文文档》 - 书栈网 · BookStack

https://python.iitter.com/other/295122.html

Flink Doris Connector - Apache Doris 中文帮助文档 - 文江博客

你可能感兴趣的:(大数据,flink)