Dev & Debug prepare on Mac
Install environment dependency
brew install automake autoconf libtool pkg-config texinfo coreutils gnu-getopt \
python@3 cmake ninja ccache bison byacc gettext wget pcre maven llvm@16 openjdk@17 npm
The version of jdk installed using brew is 17, because on macOS, the arm64 version of brew does not have version 8 of jdk by default Currently, Doris only supports jdk8 and jdk17
Dependency description:
- Java, Maven, etc. can be downloaded separately for easy management
- Mac recommend Zulu JDK8
- Maven Download from Maven website is ok - Self-downloaded Java and Maven need to configure environment variables
- Other dependent environment variables (example for Apple Silicon Macs)
- llvm:
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
- bison:
export PATH = "/opt/homebrew/opt/bison/bin:$PATH
- texinfo:
export PATH = "/opt/homebrew/opt/texinfo/bin:$PATH
- python:
ln -s -f /opt/homebrew/bin/python3 /opt/homebrew/bin/python
- llvm:
Install thrift
Note: Thrift needs to be installed only when debugging FE only. When debugging BE and FE at the same time, the three-party library of BE contains thrift
MacOS:
1. Download:`brew install thrift@0.16.0`
2. Create a soft link:
`mkdir -p ./thirdparty/installed/bin`
# Apple Silicon CPU macOS
`ln -s /opt/homebrew/Cellar/thrift@0.16.0/0.16.0/bin/thrift ./thirdparty/installed/bin/thrift`
# Intel CPU macOS
`ln -s /usr/local/Cellar/thrift@0.16.0/0.16.0/bin/thrift ./thirdparty/installed/bin/thrift`
Note:macOS implement `brew install thrift@0.16.0` it may report an error that the version cannot be found. The solution is as follows, execute in the terminal:
1. `brew tap homebrew/core --force`
2. `brew tap-new $USER/local-tap`
3. `brew extract --version='0.16.0' thrift $USER/local-tap`
4. `brew install thrift@0.16.0`
reference link: `https://gist.github.com/tonydeng/02e571f273d6cce4230dc8d5f394493c`
pull your own code
-
pull code
cd ~
mkdir DorisDev
cd DorisDev
git clone https://github.com/GitHubID/doris.git -
set environment variables
export DORIS_HOME=~/DorisDev/doris
export PATH=$DORIS_HOME/bin:$PATH
Download Doris compilation dependencies
-
The Apache Doris Third Party Prebuilt page contains the source code of all third-party libraries. You can download doris-thirdparty-source.tgz to obtain them.
-
You can download the precompiled third party library from the Apache Doris Third Party Prebuilt page. You may refer to the following commands:
cd thirdparty
rm -rf installed
# Intel chips
curl -L https://github.com/apache/doris-thirdparty/releases/download/automation/doris-thirdparty-prebuilt-darwin-x86_64.tar.xz \
-o - | tar -Jxf -
# Apple Silicon chips
curl -L https://github.com/apache/doris-thirdparty/releases/download/automation/doris-thirdparty-prebuilt-darwin-arm64.tar.xz \
-o - | tar -Jxf -
# Make sure that protoc and thrift can run successfully.
cd installed/bin
./protoc --version
./thrift --version -
When running
protoc
orthrift
, you may meet an error which says the app can not be opened because the developer cannot be verified. Go toSecurity & Privacy
. Click theOpen Anyway
button in theGeneral
pane to confirm your intent to open the app. See https://support.apple.com/en-us/HT202491.
Set file descriptors
# bash
echo 'ulimit -n 65536' >>~/.bashrc
# zsh
echo 'ulimit -n 65536' >>~/.zshrc
compile Doris
cd $DORIS_HOME
sh build.sh
Compilation Error with Higher Version of Node.js
During the compilation process, errors may occur due to a higher version of Node.js.
- opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ]
- library: 'digital envelope routines'
- reason: 'unsupported'
- code: 'ERR_OSSL_EVP_UNSUPPORTED'
For more information and a possible solution, you can refer to this Stack Overflow post.
## Instruct Node.js to use an older version of the OpenSSL provider.
export NODE_OPTIONS=--openssl-legacy-provider
Configure Debug environment
# cp out the compiled package
cp -r output ../doris-run
# Configure FE/BE's conf
1、IP、directory
2、BE additional configuration min_file_descriptor_number = 10000