AmazonLinux 2 で parquet-tools をビルド

ビルドに必要なものを用意する

yum install -y wget git tar gcc gcc-c++ boost-devel make maven
wget -nv http://archive.apache.org/dist/thrift/0.12.0/thrift-0.12.0.tar.gz && \
    tar xzf thrift-0.12.0.tar.gz && \
    cd thrift-0.12.0 && \
    chmod +x ./configure && \
    ./configure --disable-libs && \
    make install
git clone -b apache-parquet-1.11.0 --depth 1 https://github.com/apache/parquet-mr
cd parquet-mr/parquet-tools/

依存ライブラリ不足でビルドに失敗したので dependencies に以下を追加

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.10.0</version>
</dependency>
mvn clean package -Plocal

target/parquet-tools-1.11.0.jar にファイルができる。

Dockerfile

# parquet-tools
FROM amazonlinux:2
RUN yum install -y wget git tar gcc gcc-c++ boost-devel make maven
RUN wget -nv http://archive.apache.org/dist/thrift/0.12.0/thrift-0.12.0.tar.gz && \
    tar xzf thrift-0.12.0.tar.gz && \
    cd thrift-0.12.0 && \
    chmod +x ./configure && \
    ./configure --disable-libs && \
    make install

COPY pom.xml /tmp/pom.xml  # dependency を追加した pom.xml をカレントディレクトリに置いておく
RUN git clone -b apache-parquet-1.11.0 --depth 1 https://github.com/apache/parquet-mr /root/parquet-mr && \
    cd /root/parquet-mr/parquet-tools && \
    mv /tmp/pom.xml . && \
    mvn clean package -Plocal