Hi devs,
For the 1.9.0 release, we (Grant Henke, Brian McDevitt, and I) implemented
the capability to start a Kudu minicluster from a JVM environment without
having to first build Kudu locally (work tracked as KUDU-2411
<https://issues.apache.org/jira/browse/KUDU-2411>). This was made possible
by uploading relocatable Kudu binaries (Linux and Mac) to Maven central,
exposing the Kudu MiniCluster libraries for use by external projects, and
adding logic to the MiniCluster to search the classpath for the Kudu
binaries.

The completion of this work landed a little late in the 1.9.0 release
cycle, just before we started creating release candidates, and as a result
the binaries didn't make it into the RC process for a vote. I propose we
release binary convenience artifacts based on the source tag without going
through another vote because (1) they were built with the 1.9.0 RC2 source
code as voted upon, (2) they are provided simply for convenience and are
not needed to use Kudu, and (3) they are currently considered experimental.

I have already audited the binary artifacts for licensing issues and put in
place automation
<https://github.com/apache/kudu/blob/1.9.0-RC2/build-support/mini-cluster/check-license.pl>
for
the license checks at artifact build time. README, NOTICE, and LICENSE are
all included.

If you're interested in these artifacts and would like to see if they work
for you, or would like to take a closer look for other reasons, I've
uploaded binary jar artifacts for Linux and Mac (h/t to Alexey for the El
Capitan build) to the Maven staging repository at
https://repository.apache.org/content/repositories/orgapachekudu-1033/

We also have an example of using the above binary artifacts, built from the
1.9.0-RC2 tag and using 1.9.0-RC2 Java client libraries at
https://github.com/mpercy/kudu-binary-jar-test/ -- you can see if the
artifact works in your environment by simply cloning that Git repository
and running "mvn test". (This is just a copy/pasted and modified version of
java-example from the Kudu code examples repo; h/t to Brian for getting it
to work with the binary jar.)

Please note that the binary jar Maven integration (using os-maven-plugin)
requires Maven 3.1 or later. In addition, it must be run on macOS El
Capitan or later, or a modern flavor of Linux (any Linux distribution that
Kudu supports
<https://kudu.apache.org/docs/installation.html#_prerequisites_and_requirements>
should work).

A draft of user docs for how to integrate the Kudu binary jar into a Java
project can be found here
<https://docs.google.com/document/d/1n9flFdHEnULX3_wxmy__gU7WKK-FIYFxvufWbvEHu-c/>
and
if we have consensus on including this as outlined above then I'll work
with Andrew to get the relevant docs posted to the web site in time for the
1.9.0 release announcement.

Thanks to those who helped get this done (some early prototyping was also
done by Tim Robertson) and I hope that folks find this new capability
useful!

Please let me know if you have questions, concerns, or feedback on this
functionality.

Regards,
Mike

Reply via email to