title: BookKeeper installation subtitle: Download or clone BookKeeper and build it locally next: ../run-locally

{% capture download_url %}http://apache.claz.org/bookkeeper/bookkeeper-{{ site.latest_release }}/bookkeeper-{{ site.latest_release }}-src.tar.gz{% endcapture %}

You can install BookKeeper either by downloading a GZipped tarball package or cloning the BookKeeper repository.

Requirements

Download

You can download Apache BookKeeper releases from one of many Apache mirrors. Here's an example for the apache.claz.org mirror:

$ curl -O {{ download_url }}
$ tar xvf bookkeeper-{{ site.latest_release }}-src.tar.gz
$ cd bookkeeper-{{ site.latest_release }}

Clone

To build BookKeeper from source, clone the repository, either from the [GitHub mirror]({{ site.github_repo }}) or from the Apache repository:

# From the GitHub mirror
$ git clone {{ site.github_repo}}

# From Apache directly
$ git clone git://git.apache.org/bookkeeper.git/

Build using Maven

Once you have the BookKeeper on your local machine, either by downloading or cloning it, you can then build BookKeeper from source using Maven:

$ mvn package

Since 4.8.0, bookkeeper introduces table service. If you would like to build and tryout table service, you can build it with stream profile.

$ mvn package -Dstream

You can skip tests by adding the -DskipTests flag when running mvn package.

Useful Maven commands

Some other useful Maven commands beyond mvn package:

CommandAction
mvn cleanRemoves build artifacts
mvn compileCompiles JAR files from Java sources
mvn compile spotbugs:spotbugsCompile using the Maven SpotBugs plugin
mvn installInstall the BookKeeper JAR locally in your local Maven cache (usually in the ~/.m2 directory)
mvn deployDeploy the BookKeeper JAR to the Maven repo (if you have the proper credentials)
mvn verifyPerforms a wide variety of verification and validation tasks
mvn apache-rat:checkRun Maven using the Apache Rat plugin
mvn compile javadoc:aggregateBuild Javadocs locally
mvn -am -pl bookkeeper-dist/server packageBuild a server distribution using the Maven Assembly plugin

You can enable table service by adding the -Dstream flag when running above commands.

Package directory

The BookKeeper project contains several subfolders that you should be aware of:

SubfolderContains
[bookkeeper-server]({{ site.github_repo }}/tree/master/bookkeeper-server)The BookKeeper server and client
[bookkeeper-benchmark]({{ site.github_repo }}/tree/master/bookkeeper-benchmark)A benchmarking suite for measuring BookKeeper performance
[bookkeeper-stats]({{ site.github_repo }}/tree/master/bookkeeper-stats)A BookKeeper stats library
[bookkeeper-stats-providers]({{ site.github_repo }}/tree/master/bookkeeper-stats-providers)BookKeeper stats providers