This topic is about how to compile Doris from source with macOS (both x86_64 and arm64).
Use Homebrew to install dependencies.
brew install automake autoconf libtool pkg-config texinfo coreutils gnu-getopt \ python@3 cmake ninja ccache bison byacc gettext wget pcre maven llvm@15 openjdk@8 npm
Compile from source.
bash build.sh
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 or thrift, you may meet an error which says the app can not be opened because the developer cannot be verified. Go to Security & Privacy. Click the Open Anyway button in the General pane to confirm your intent to open the app. See https://support.apple.com/en-us/HT202491.
Set file descriptors (NOTICE: If you have closed the current session, you need to set this variable again)。
ulimit -n 65536
You can also write this configuration into the initialization files so you don't need to set the variables again when opening a new terminal session.
# bash echo 'ulimit -n 65536' >>~/.bashrc # zsh echo 'ulimit -n 65536' >>~/.zshrc
Check if the configuration works by executing the following command.
$ ulimit -n 65536
Start BE up
cd output/be/bin ./start_be.sh --daemon
Start FE up
cd output/fe/bin ./start_fe.sh --daemon
Fail to start BE up. The log shows: fail to open StorageEngine, res=file descriptors limit is too small
To fix this, please refer to the “Start-up” section above and reset file descriptors.
Java 8 is recommended.