| # How to build and run Apache Drill | |
| ## Prerequisites | |
| Currently, the Apache Drill build process is known to work on Linux, Windows and OSX. To build, you need to have the following software installed on your system to successfully complete a build. | |
| * Java 8 | |
| * Maven 3.6.3 or greater | |
| ## Docker based build environment | |
| The `start-build-env.sh` script in the root of the project source builds and starts a preconfigured environment | |
| that contains all the tools needed to build Apache Drill from source. | |
| This is known to work on Ubuntu 20.04 with Docker installed. | |
| On other systems your success may vary. On Redhat/CentOS based systems no longer have Docker. | |
| ## Confirm settings | |
| # java -version | |
| java version "1.8.0_161" | |
| Java(TM) SE Runtime Environment (build 1.8.0_161-b12) | |
| Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode) | |
| # mvn --version | |
| Apache Maven 3.6.3 | |
| ## Formatter Configuration | |
| Setting up IDE formatters is recommended and can be done by importing the following settings into your browser. | |
| [Formatter File](../../dev-support/formatter) | |
| ## Checkout | |
| git clone https://github.com/apache/drill.git | |
| ## Build | |
| cd drill | |
| mvn clean install -DskipTests | |
| ## Build Quickly | |
| This command works to build Drill in about 2 minutes for quick testing. The `-o` (offline) argument | |
| prevents Maven from downloading snapshot artifacts from the snapshot repo. | |
| mvn install -o -T1C -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dlicense.skip=true -Dcheckstyle.skip=true -Dfindbugs.skip=true -Dmaven.site.skip=true -Denforcer.skip=true -DskipIfEmpty=true -Dmaven.compiler.optimize=true | |
| ## Generate Dependency Report | |
| mvn clean site | |
| ## Explode tarball in installation directory | |
| mkdir /opt/drill | |
| tar xvzf distribution/target/*.tar.gz --strip=1 -C /opt/drill | |
| ## Start SQLLine (which starts Drill in embedded mode) | |
| cd /opt/drill | |
| bin/sqlline -u jdbc:drill:zk=local -n admin -p admin | |
| ## Run a query | |
| SELECT | |
| employee_id, | |
| first_name | |
| FROM cp.`employee.json`; | |
| ## More information | |
| For more information including how to run a Apache Drill cluster, visit the [Apache Drill Documentation](http://drill.apache.org/docs/) |