Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

tocThis 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 (processor must support at least SSSE3)
  • Minimum Memory: 8GBmemory: 16GB
  • Hard disk space: 120GB (for the test data)

Supported Operating Systems

Linux

  • Ubuntu 14.04, 15.0416.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

Installing and Configuring Impala

Install prerequisites

...

Option 1 - Building Impala (for developing Impala)

This will also load all the test data, i.e. on HDFS, Kudu and HBase and for all formats (text/parquet/orc) and compressions (none/gzip/snappy etc.) which usually takes hours. If you just need some simple test data (e.g. TPCH data set), try Option 2 below.

Code Block

...

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 manually testing Impala)

If you have some test data in hand, or you just need a subset of the test data (e.g. TPCH tables in parquet format), you can try this.

Clone the Impala git repo and change to the new Impala directory.

...

languagebash
themeEmacs
Code Block
git clone https://

...

gitbox.apache.org/repos/asf/

...

impala.git ~/Impala
cd 

...

Set the following environment variables in your `.bashrc` or elsewhere:

...

languagebash
themeEmacs

...

~/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

# Load some test data (skip this if you don't need them)
# Example 1: Load functional test data in parquet format. Note that you need the text tables since parquet tables are generated from them.
bin/create_testdata.sh
bin/load-data.py -e core -w functional-query --table_formats=text/none,parquet/none
# Example 2: Load TPCH test data in parquet format.
bin/load-data.py -e core -w tpch --table_formats=text/none,parquet/none
# Example 3: Load TPCDS test data in parquet format.
bin/load-data.py -e core -w tpcds --table_formats=text/none,parquet/none

Rebuilding after initial build

...

Code Block
languagebash
themeEmacs

...

# Rebuild both backend and frontend
${IMPALA_HOME}/

...

buildall.sh -skiptests -noclean

# 

...

Rebuild 

...

with 

...

optimized 

...

release binaries
${IMPALA_HOME}/buildall.sh

...

 -skiptests -

...

Start supporting services

...

languagebash
themeEmacs

...

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?

Image Added

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

...