浏览代码

HADOOP-16739. Fix native build failure of hadoop-pipes on CentOS 8.

Masatake Iwasaki 5 年之前
父节点
当前提交
83c4f8b9a0
共有 2 个文件被更改,包括 63 次插入0 次删除
  1. 41 0
      BUILDING.txt
  2. 22 0
      hadoop-tools/hadoop-pipes/src/CMakeLists.txt

+ 41 - 0
BUILDING.txt

@@ -422,6 +422,47 @@ Building command example:
 Note that the command above manually specified the openssl library and include
 Note that the command above manually specified the openssl library and include
 path. This is necessary at least for Homebrewed OpenSSL.
 path. This is necessary at least for Homebrewed OpenSSL.
 
 
+
+----------------------------------------------------------------------------------
+
+Building on CentOS 8
+
+----------------------------------------------------------------------------------
+
+
+* Install development tools such as GCC, autotools, OpenJDK and Maven.
+  $ sudo dnf group install 'Development Tools'
+  $ sudo dnf install java-1.8.0-openjdk-devel maven
+
+* Install Protocol Buffers v2.5.0.
+  $ git clone https://github.com/protocolbuffers/protobuf
+  $ cd protobuf
+  $ git checkout v2.5.0
+  $ autoreconf -i
+  $ ./configure --prefix=/usr/local
+  $ make
+  $ sudo make install
+  $ cd ..
+
+* Install libraries provided by CentOS 8.
+  $ sudo dnf install libtirpc-devel zlib-devel lz4-devel bzip2-devel openssl-devel cyrus-sasl-devel libpmem-devel
+
+* Install optional dependencies (snappy-devel).
+  $ sudo dnf --enablerepo=PowerTools snappy-devel
+
+* Install optional dependencies (libzstd-devel).
+  $ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
+  $ sudo dnf --enablerepo=epel install libzstd-devel
+
+* Install optional dependencies (isa-l).
+  $ sudo dnf --enablerepo=PowerTools install nasm
+  $ git clone https://github.com/intel/isa-l
+  $ cd isa-l/
+  $ ./autogen.sh
+  $ ./configure
+  $ make
+  $ sudo make install
+
 ----------------------------------------------------------------------------------
 ----------------------------------------------------------------------------------
 
 
 Building on Windows
 Building on Windows

+ 22 - 0
hadoop-tools/hadoop-pipes/src/CMakeLists.txt

@@ -22,6 +22,25 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../../../hadoop-common-project
 include(HadoopCommon)
 include(HadoopCommon)
 
 
 find_package(OpenSSL REQUIRED)
 find_package(OpenSSL REQUIRED)
+find_package(PkgConfig QUIET)
+pkg_check_modules(LIBTIRPC libtirpc)
+
+find_path(RPC_INCLUDE_DIRS NAMES rpc/rpc.h)
+
+if (NOT RPC_INCLUDE_DIRS)
+    find_path(TIRPC_INCLUDE_DIRS
+        NAMES netconfig.h
+        PATH_SUFFIXES tirpc
+        HINTS ${LIBTIRPC_INCLUDE_DIRS}
+    )
+
+    find_library(TIRPC_LIBRARIES
+        NAMES tirpc
+        HINTS ${LIBTIRPC_LIBRARY_DIRS}
+    )
+
+    include_directories(${TIRPC_INCLUDE_DIRS})
+endif()
 
 
 include_directories(
 include_directories(
     main/native/utils/api
     main/native/utils/api
@@ -51,6 +70,9 @@ add_library(hadooputils STATIC
     main/native/utils/impl/StringUtils.cc
     main/native/utils/impl/StringUtils.cc
     main/native/utils/impl/SerialUtils.cc
     main/native/utils/impl/SerialUtils.cc
 )
 )
+if (NOT RPC_INCLUDE_DIRS AND LIBTIRPC_FOUND)
+    target_link_libraries(hadooputils tirpc)
+endif()
 
 
 add_library(hadooppipes STATIC
 add_library(hadooppipes STATIC
     main/native/pipes/impl/HadoopPipes.cc
     main/native/pipes/impl/HadoopPipes.cc