This page describes how to build Impala from source and how to configure and run Impala in a single node development environment. 

Prerequisites and Requirements

Hardware Requirements

  • CPU must support at least SSSE3
  • Minimum memory: 16GB
  • Hard disk space: 120GB (for the test data)

Supported Operating Systems

Linux

  • Ubuntu 14.04, 16.04, 18.04, 20.04
  • CentOS 7
  • See bootstrap_development.sh for other supported versions (this wiki page may be stale).

OS X

Not supported

Windows

Not supported

Option 1 - Building Impala (for developing Impala)

git clone https://gitbox.apache.org/repos/asf/impala.git ~/Impala
cd ~/Impala
export IMPALA_HOME=`pwd`
./bin/bootstrap_development.sh

Option 2 - Building Impala without Test Data (for testing Impala)

git clone https://gitbox.apache.org/repos/asf/impala.git ~/Impala
cd ~/Impala
export IMPALA_HOME=`pwd`
./bin/bootstrap_system.sh
source ./bin/impala-config.sh
# Format the test cluster and start Impala and dependent services
./buildall.sh -noclean -notests -format -start_minicluster -start_impala_cluster

Rebuilding after initial build

# Rebuild both backend and frontend
${IMPALA_HOME}/buildall.sh -skiptests -noclean

# Rebuild with optimized release binaries
${IMPALA_HOME}/buildall.sh -skiptests -noclean -release

# Incremental builds
source ${IMPALA_HOME}/bin/impala-config.sh # If you didn't already source impala-config.sh in this shell
 # Optional: Rebuild the impala binary only
make -j$IMPALA_BUILD_THREADS impalad
# Optional: Build the Java-side frontend only
make -j$IMPALA_BUILD_THREADS java

# Restart the Impala cluster
${IMPALA_HOME}/bin/start-impala-cluster.py

See Tips for Faster Impala Builds for more tips on how to do incremental builds.

FAQ

Q: The build is stuck at 100% progress for a while (as the screenshot shows). What's going on there?

A: Usually the FE compilation is still running. Maven downloads a lot of artifacts. So you will see slow progress there if your internet connection is slow. You can check the logs at ${IMPALA_HOME}/logs/mvn/mvn.log


  • No labels

2 Comments

  1. In my opinion this page is made obsolete by bin/bootstrap_development.sh. Any objection to deleting it?

    1. I think this is still somewhat useful in that it provides some additional explanation of what the build does and workflow after the first full build (it's not great for that, but better than nothing). I'd probably prefer to leave it until we can strip away the unnecessary stuff and make it better focused on steps after bootstrapping.