The First Cry of Atom Today is the first day of the rest of my life.

Build Presto on OSX

As described here, we cannot run Presto package build on OSX. Mainly it was caused by JNI side issue and machine architecture. I knew the issue from Issue 3849.

It looks like you’re running on ppc64. Presto only supports x86_64 on Linux (required for bundled Hadoop JNI libraries) and has many assumptions about the architecture being little endian.

I couldn’t run Presto build on OSX when I deploy on Ubuntu docker container due to this issue. But I don’t have any Linux machine easily. (Of course I can launch EC2 instance sometimes though.) So I found a workaround to run Presto without Linux machine. It can be done with presto-build.

https://github.com/Lewuathe/presto-build

Why presto-build?

Presto built on OSX does not work with Linux because of JNI issue. We will see not found BSDVirtualMachine exception. And also Presto only supports x86_64 on Linux as described here. So the easiest way to build Presto on Linux running x86_64 machine. But how can we build without Linux (like me!). I want to described a way to build Presto which can run on Linux without Linux here.

How to build

1. Clone repository

$ git clone [email protected]:Lewuathe/presto-build.git

2. Set presto project directory

$ export PRESTO_HOME=/path/to/presto

3. Remove presto-doc

Due to incompatibility with PPC64 architecture. The detail is written here.

$ cd /path/to/presto
$ vi pom.xml

Here, you need to comment out presto-doc from module

<!-- <module>presto-docs</module> -->

4. Start docker container

$ cd presto-build
$ ./start-build-env.sh

Now you can build presto package on this container. The simplest command to build is

$ ./mvnw clean package -DskipTests

presto-build is distributed under MIT License. Please feel free to let me know if you know any other workaround to build Presto on OSX.

Thank you.