1. Disable the MySQL client and LZO library by default when building the Doris.
MySQL client library is used for MySQL external table feature.
This feature will be replaced by the new ODBC external table soon.
LZO library is used to compress/decompress data of some old data format of Doris,
which is no longer used anymore.
2. Add missing license to some files.
3. For all non-Apache-License code, all are explained in NOTICE file and the corresponding license is declared.
4. Remove the js source code from webroot, it will be downloaded as thirdparty
4.8 KiB
title, language
| title | language |
|---|---|
| Compilation | en |
Compilation
This document focuses on how to code Doris through source code.
Developing mirror compilation using Docker (recommended)
Use off-the-shelf mirrors
-
Download Docker Mirror
$ docker pull apachedoris/doris-dev:build-envCheck mirror download completed:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE apachedoris/doris-dev build-env f8bc5d4024e0 21 hours ago 3.28GB
Note: For different versions of Oris, you need to download the corresponding mirror version.
| image version | commit id | release version |
|---|---|---|
| apachedoris/doris-dev:build-env | before ff0dd0d | 0.8.x, 0.9.x |
| apachedoris/doris-dev:build-env-1.1 | ff0dd0d or later | 0.10.x or later |
-
Running Mirror
$ docker run -it apachedoris/doris-dev:build-envIf you want to compile the local Doris source code, you can mount the path:
$ docker run -it -v /your/local/incubator-doris-DORIS-x.x.x-release/:/root/incubator-doris-DORIS-x.x.x-release/ apachedoris/doris-dev:build-env -
Download source code
After starting the mirror, you should be in the container. The Doris source code can be downloaded from the following command (local source directory mounted is not required):
$ wget https://dist.apache.org/repos/dist/dev/incubator/doris/xxx.tar.gz or $ git clone https://github.com/apache/incubator-doris.git -
Compile Doris
$ sh build.shAfter compilation, the output file is in the
output/directory.
Self-compiling Development Environment Mirror
You can also create a Doris development environment mirror yourself, referring specifically to the `docker/README.md'file.
Direct Compilation (CentOS/Ubuntu)
You can try to compile Doris directly in your own Linux environment.
-
System Dependence
GCC 5.3.1+, Oracle JDK 1.8+, Python 2.7+, Apache Maven 3.5+, CMake 3.11+If you are using Ubuntu 16.04 or newer, you can use the following command to install the dependencies
sudo apt-get install build-essential openjdk-8-jdk maven cmake byacc flex automake libtool-bin bison binutils-dev libiberty-dev zip unzip libncurses5-devAfter installation, set environment variables
PATH,JAVA_HOME, etc. -
Compile Doris
$ sh build.shAfter compilation, the output file is in the
output/directory.
Special statement
Starting from version 0.13, the dependency on the two third-party libraries [1] and [2] will be removed in the default compiled output. These two third-party libraries are under GNU General Public License V3. This license is incompatible with Apache License 2.0, so it should not appear in the Apache release by default.
Remove library [1] will result in the inability to access MySQL external tables. The feature of accessing MySQL external tables will be implemented through UnixODBC in future release version.
Remove library [2] will cause some data written in earlier versions (before version 0.8) to be unable to read. Because the data in the earlier version was compressed using the LZO algorithm, in later versions, it has been changed to the LZ4 compression algorithm. We will provide tools to detect and convert this part of the data in the future.
If required, users can continue to use these two dependent libraries. If you want to use it, you need to add the following options when compiling:
WITH_MYSQL=1 WITH_LZO=1 sh build.sh
Note that when users rely on these two third-party libraries, Doris is not used under the Apache License 2.0 by default. Please pay attention to the GPL related agreements.
- [1] mysql-5.7.18
- [2] lzo-2.10