前提
- vscodeを入れている
- vscodeのリモート接続している(この投稿はamazon linuxとつなげていますが、wslの場合yumをaptに読み替えてください)
構築した環境
-
OS
amazon linux -
各種コンパイラ
[xxx@xxx src]$ java --version
openjdk 11.0.4 2019-07-16 LTS
OpenJDK Runtime Environment Corretto-11.0.4.11.1 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.4.11.1 (build 11.0.4+11-LTS, mixed mode)
[xxx@xxx src]$ mvn --version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
Maven home: /usr/share/apache-maven
Java version: 11.0.4, vendor: Amazon.com Inc.
Java home: /usr/lib/jvm/java-11-amazon-corretto
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "4.14.133-113.105.amzn2.x86_64", arch: "amd64", family: "unix"
[xxx@xxx src]$ gcc -v
組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
ターゲット: x86_64-redhat-linux
configure 設定: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-libsanitizer --enable-gnu-indirect-function --enable-libcilkrts --enable-libatomic --enable-libquadmath --enable-libitm --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
スレッドモデル: posix
gcc バージョン 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
以下手順
1. Extensionsを追加する
これを追加するだけだと parquet-toolのパスが見つかりません
といったニュアンスのエラーが発生します
2. 準備
コピペで行けると思いますが、エラーが出たらコンパイルエラーをみて必要なライブラリを追加が必要になります。
sudo yum install gcc -y
sudo yum install gcc-c++ -y
sudo yum install boost-devel -y
sudo yum install byacc -y
sudo yum install openssl-devel -y
sudo yum install protobuf -y
sudo yum install protobuf-devel boost-devel gflags-devel lmdb-devel -y
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
./configure --disable-gen-erl --disable-gen-hs --without-ruby --without-haskell --without-erlang --without-php --without-nodejs
# 割と重めのコンパイルです
sudo make install
3. parquet-toolコンパイル
git clone git@github.com:apache/parquet-mr.git
cd parquet-mr
mvn -pl parquet-tools -am clean package -Plocal
重要
公式ページだと cd parquet-tools
してからmvnしていますが、モジュール依存で失敗するので、parquet-mrでmvnしてください。
また、前述のコマンドの通り打てばよいのですが、指定のモジュールだけではなく依存解決しながらコンパイルしてください
4. 実行ファイル作る
jarのパスは適当です
[xxx@xxx src]$ cat /usr/local/bin/parquet-tools
# !/bin/bash
exec java -jar /usr/local/bin/parquet-tools-1.12.0-SNAPSHOT.jar "$@"