Apache Arrow Builds

Build Env

echo 'deb http://archive.ubuntu.com/ubuntu/ disco main restricted
deb http://security.ubuntu.com/ubuntu/ disco-security main restricted' \
  > /etc/apt/sources.list.d/disco.list
echo 'Package: *
Pin: release n=disco
Pin-Priority: -10
Package: cmake
Pin: release n=bionic
Pin-Priority: 500' > /etc/apt/preferences.d/disco-cmake.pref
0.2s
Arrow Build Env (Bash)
apt-get -qq update
3.5s
Arrow Build Env (Bash)
DEBIAN_FRONTEND=noninteractive apt-get install \
  build-essential gfortran cmake automake libtool libltdl-dev pkg-config \
  python3-pip python3-setuptools python3-wheel \
  gnupg git lsb-release patch perl-doc \
  fontconfig fonts-dejavu fonts-liberation2 \
  libboost-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev libboost-test-dev \
  libjemalloc-dev libevent-dev libdouble-conversion-dev libssl-dev libsnappy-dev libbrotli-dev libgoogle-glog-dev libgflags-dev libprotoc-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler python-protobuf libprotobuf-java libprotobuf-java-format-java rapidjson-dev liblz4-dev libzstd-dev libre2-dev \
  openjdk-11-jdk openjdk-11-jre \
  python-pip python-numpy llvm-7-dev clang-7 bison flex \
  gobject-introspection gtk-doc-tools autoconf-archive libgirepository1.0-dev
#DEBIAN_FRONTEND=noninteractive apt-get install cmake -t disco
186.4s
Arrow Build Env (Bash)
wget --progress=bar:force -P /results \
  http://apache.claz.org/thrift/0.13.0/thrift-0.13.0.tar.gz
1.7s
Arrow Build Env (Bash)
thrift-0.13.0.tar.gz
tar -zxf NJ__REF_
cd thrift-0.13.0
./configure CFLAGS='-O2' CXXFLAGS='-O2' \
  --disable-dependency-tracking \
  --disable-tutorial \
  --disable-coverage
make -j5
make install
230.5s
Arrow Build Env (Bash)
git clone https://github.com/google/flatbuffers
2.9s
Arrow Build Env (Bash)
cd flatbuffers
rm -rf build
mkdir build
cd build
cmake -G "Unix Makefiles" \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_CXX_FLAGS="-fPIC -O2" \
  -DFLATBUFFERS_BUILD_SHAREDLIB=ON \
  ..
make -j5
make install
100.7s
Arrow Build Env (Bash)
ldconfig
Shift+Enter to run
Arrow Build Env (Bash)
du -hsx /
thrift -version
flatc --version
1.1s
Arrow Build Env (Bash)

Build

CPP

wget --progress=bar:force -P /results \
  http://apache.claz.org/arrow/arrow-0.15.1/apache-arrow-0.15.1.tar.gz
1.7s
Arrow Build (Bash)
Arrow Build Env
apache-arrow-0.15.1.tar.gz
tar -zxf NJ__REF_
0.6s
Arrow Build (Bash)
Arrow Build Env
cd apache-arrow*/cpp
rm -rf build
mkdir build
cd build
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
cmake -DCMAKE_INSTALL_PREFIX="/opt/arrow" \
  -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
  -DARROW_USE_LD_GOLD=ON \
  -DCUDA_TOOLKIT_ROOT_DIR="/usr/local/cuda" \
  -DCMAKE_LIBRARY_PATH="/usr/local/cuda/lib64/stubs" \
  -DARROW_CXXFLAGS="-fPIC" \
  -DARROW_BUILD_SHARED=ON \
  -DARROW_BOOST_USE_SHARED=ON \
  -DBOOST_SOURCE=SYSTEM \
  -DARROW_PROTOBUF_USE_SHARED=ON \
  -DARROW_GFLAGS_USE_SHARED=ON \
  -DARROW_TEST_LINKAGE=shared \
  -DARROW_CUDA=ON \
  -DARROW_GANDIVA=ON \
  -DARROW_JNI=ON \
  -DARROW_HDFS=OFF \
  -DARROW_PARQUET=ON \
  -DARROW_PLASMA=ON \
  -DARROW_PLASMA_JAVA_CLIENT=ON \
  -DARROW_PYTHON=ON \
  -DARROW_TENSORFLOW=ON \
  -DPARQUET_BUILD_EXECUTABLES=ON \
  -DPARQUET_REQUIRE_ENCRYPTION=ON \
  -DARROW_GANDIVA_STATIC_LIBSTDCPP=OFF \
  -DARROW_GANDIVA_JAVA=OFF \
  -DARROW_OPTIONAL_INSTALL=ON \
  ..
3.6s
Arrow Build (Bash)
Arrow Build Env
cd /apache-arrow*/cpp/build
make -j5 --no-print-directory
make install
382.5s
Arrow Build (Bash)
Arrow Build Env

GLIB

cd /apache-arrow*/c_glib
bash autogen.sh
rm -rf build
mkdir build
cd build
../configure \
  --prefix=/opt/arrow --disable-dependency-tracking \
  --with-arrow-cpp-build-type=release \
  --with-arrow-cpp-build-dir="$(pwd)/../../cpp/build" \
  --disable-gtk-doc --disable-gtk-doc-html --disable-gtk-doc-pdf
17.8s
Arrow Build (Bash)
Arrow Build Env
ldconfig
ldconfig -p | grep thrift
0.6s
Arrow Build (Bash)
Arrow Build Env
cd /apache-arrow*/c_glib/build
make -j5
make install
12.1s
Arrow Build (Bash)
Arrow Build Env
cd /opt/arrow
tar -zcf /results/apache-arrow-njbuild-0.15.1.tar.gz *
7.5s
Arrow Build (Bash)
Arrow Build Env
apache-arrow-njbuild-0.15.1.tar.gz

Thrift & Flatbuffers Installers

Package up Thrift, Flatbuffers, and Arrow.

mkdir -p /opt/arrow
cd /opt/arrow
tar -zxf NJ__REF_
du -hsc /opt/arrow
2.1s
Packaging (Bash)
Arrow Build Env
cd /thrift-0.13.0
make install prefix=/opt/arrow
1.8s
Packaging (Bash)
Arrow Build Env
cd /flatbuffers/build
make install DESTDIR=/opt/flatb
cd /opt/flatb/usr/local
cp -a * /opt/arrow/
0.7s
Packaging (Bash)
Arrow Build Env
du -hsc /opt/arrow
0.6s
Packaging (Bash)
Arrow Build Env
cd /opt/arrow
tar -zcf /results/apache-arrow+-njbuild-0.15.1.tar.gz *
8.3s
Packaging (Bash)
Arrow Build Env
apache-arrow+-njbuild-0.15.1.tar.gz
Runtimes (3)