| # 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/) |