If you don't have an Ubuntu 14.04 or 16.04 environment available, you can use Docker to develop. First, install Docker as you normally would. Then,

docker pull ubuntu:16.04
# SYS_TIME is required for kudu to work. The container will be able to change the time of the host.
docker run --cap-add SYS_TIME --interactive --tty --name impala-dev ubuntu:16.04 bash


Now, within the container:

apt-get update
apt-get install sudo
adduser --disabled-password --gecos '' impdev
echo 'impdev ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
su - impdev


Then, as impdev in the container:

sudo apt-get --yes install git
git clone https://git-wip-us.apache.org/repos/asf/impala.git ~/Impala
cd ~/Impala
export IMPALA_HOME=`pwd`


# See https://cwiki.apache.org/confluence/display/IMPALA/Building+Impala for developing Impala.
$IMPALA_HOME/bin/bootstrap_development.sh

or

# See https://cwiki.apache.org/confluence/display/IMPALA/Building+Impala for testing Impala.
$IMPALA_HOME/bin/bootstrap_system.sh
source $IMPALA_HOME/bin/impala-config.sh
$IMPALA_HOME/buildall.sh -noclean -notests
$IMPALA_HOME/bin/create-test-configuration.sh -create_metastore -create_sentry_policy_db
$IMPALA_HOME/testdata/bin/run-all.sh
$IMPALA_HOME/bin/start-impala-cluster.py


When that's done, start developing! When you're ready to pause, in a new terminal in the host:

docker commit impala-dev && docker stop impala-dev


When you're ready to get back to work:

docker start --interactive impala-dev


If instead of committing your work and stopping the container, you just want to detach from it, use ctrl-p ctrl-q. You can re-attach using the start command.