Hi Rares,
The reason compilation fails when you set ARROW_PARQUET=ON is because this
flag also enables
installing Apache Thrift [1] and support for Thrift in CentOS systems is
fragile (see THRIFT-2559 [2]).
When you disable Parquet, Thrift is not installed as a required dependency.
I recommend you to try the following solutions:
1. Install Thrift for CentOS independent from Arrow. You can find it in the
official Apache Thrift webpage [3].
Note that Arrow 3.0.0 installs Thrift 0.12.0 (see
arrow/cpp/thirdparty/versions.txt) but CentOS package has 0.9.1.
2. There is an old Arrow PR [4] that contains a script to identify/download
Thrift from the preferred Apache
mirror instead of using the Apache distribution server.
Hope this helps,
~Eduardo
[1]
https://github.com/apache/arrow/blob/master/cpp/cmake_modules/ThirdpartyToolchain.cmake#L273-L274
[2] https://issues.apache.org/jira/browse/THRIFT-2559
[3]
https://centos.pkgs.org/7/epel-x86_64/thrift-0.9.1-15.el7.x86_64.rpm.html
[4] https://github.com/apache/arrow/pull/4558
On Mon, Sep 20, 2021 at 11:56 PM Rares Vernica <[email protected]> wrote:
> Hello,
>
> I'm compiling the C++ library for Arrow 3.0.0 in CentOS 7. It works fine,
> but it breaks if I set ARROW_PARQUET=ON. I stops while trying to build
> thrift_ep
>
> > scl enable devtoolset-3 "cmake3 ..
> \
> -DARROW_PARQUET=ON
> \
> -DARROW_WITH_LZ4=ON
> \
> -DARROW_WITH_ZLIB=ON
> \
> -DARROW_COMPUTE=ON
> \
> -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/g++
> \
> -DCMAKE_C_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/gcc
> \
> -DCMAKE_INSTALL_PREFIX=/opt/apache-arrow"
>
> apache-arrow-3.0.0/cpp/build> make
> Scanning dependencies of target jemalloc_ep
> [ 1%] Creating directories for 'jemalloc_ep'
> [ 1%] Performing download step (download, verify and extract) for
> 'jemalloc_ep'
> -- jemalloc_ep download command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-download-*.log
> [ 2%] Performing patch step for 'jemalloc_ep'
> [ 2%] No update step for 'jemalloc_ep'
> [ 2%] Performing configure step for 'jemalloc_ep'
> -- jemalloc_ep configure command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-*.log
> [ 3%] Performing build step for 'jemalloc_ep'
> -- jemalloc_ep build command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-build-*.log
> [ 3%] Performing install step for 'jemalloc_ep'
> -- jemalloc_ep install command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-install-*.log
> [ 4%] Completed 'jemalloc_ep'
> [ 4%] Built target jemalloc_ep
> Scanning dependencies of target boost_ep
> [ 4%] Creating directories for 'boost_ep'
> [ 5%] Performing download step (download, verify and extract) for
> 'boost_ep'
> -- boost_ep download command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/boost_ep-prefix/src/boost_ep-stamp/boost_ep-download-*.log
> [ 5%] No patch step for 'boost_ep'
> [ 5%] No update step for 'boost_ep'
> [ 6%] No configure step for 'boost_ep'
> [ 6%] No build step for 'boost_ep'
> [ 7%] No install step for 'boost_ep'
> [ 7%] Completed 'boost_ep'
> [ 7%] Built target boost_ep
> Scanning dependencies of target thrift_ep
> [ 7%] Creating directories for 'thrift_ep'
> [ 7%] Performing download step (download, verify and extract) for
> 'thrift_ep'
> -- thrift_ep download command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-download-*.log
> [ 7%] No patch step for 'thrift_ep'
> [ 8%] No update step for 'thrift_ep'
> [ 9%] Performing configure step for 'thrift_ep'
> -- thrift_ep configure command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-configure-*.log
> [ 9%] Performing build step for 'thrift_ep'
> -- thrift_ep build command succeeded. See also
>
> apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-build-*.log
> [ 10%] Performing install step for 'thrift_ep'
> CMake Error at
>
> apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-RELEASE.cmake:37
> (message):
> Command failed: 2
>
> 'make' 'install'
>
> See also
>
>
>
> apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-*.log
>
>
> -- stdout output is:
>
> -- stderr output is:
> make[3]: *** No rule to make target `install'. Stop.
>
> CMake Error at
>
> apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-RELEASE.cmake:47
> (message):
> Stopping after outputting logs.
>
>
> make[2]: *** [thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install] Error
> 1
> make[1]: *** [CMakeFiles/thrift_ep.dir/all] Error 2
> make: *** [all] Error 2
>
>
> > cat
>
> apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-*.log
> make[3]: *** No rule to make target `install'. Stop.
>
> Am I missing some dependencies?
>
> Thank you!
> Rares
>