解决-ISAL-L和PMDK功能完整环境包
# 一、背景说明
在 Rocky Linux 8.10 下编译 Bigtop 集成的大数据组件(如 Hadoop 3.3.4、HBase、ZooKeeper 等)时,如果需要开启 native 特性(如 OpenSSL、ISA-L、PMDK、Zstd、Snappy 等),系统必须具备完整的编译工具链与开发库。
缺少任意一项依赖都会导致编译过程反复中断、重新构建。为了减少不必要的反复调试,整理出以下“完整环境包”安装清单, 一次性满足编译条件。
适用范围
本清单仅适用于 Rocky Linux 8.10,其他 RHEL 系列版本(如 CentOS Stream、AlmaLinux)可能存在包名或版本差异,请根据实际环境调整。
# 二、完整环境包安装命令
在 Rocky 8.10 下,建议使用 dnf
安装以下依赖:
dnf -y install \
asciidoc \
autoconf \
automake \
bzip2-devel \
cmake \
cppunit-devel \
cyrus-sasl-devel \
curl \
docbook2X \
fuse \
fuse-devel \
fuse-libs \
gcc \
gcc-c++ \
git \
iproute \
krb5-devel \
less \
libtirpc-devel \
libtool \
libxml2-devel \
lsof \
lzo-devel \
make \
net-tools \
openssh-server \
openssl-devel \
patch \
procps-ng \
protobuf-devel \
python3 \
redhat-lsb-core \
rpm-build \
rsync \
snappy-devel \
sudo \
tar \
unzip \
vim \
wget \
which \
xmlto \
zlib-devel \
isa-l-devel \
libpmem-devel \
libpmemobj-devel \
protobuf-compiler \
pkgconf \
m4 \
autoconf-archive \
libzip-devel \
sharutils \
libgsasl-devel \
libzstd-devel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
说明
- 核心工具链:
gcc
、gcc-c++
、make
、cmake
、autoconf
、automake
、libtool
- 压缩/加密库:
libzstd-devel
、snappy-devel
、bzip2-devel
、openssl-devel
- 网络/安全协议:
cyrus-sasl-devel
、libgsasl-devel
、krb5-devel
- 存储优化:
isa-l-devel
、libpmem-devel
、libpmemobj-devel
、lzo-devel
- 协议编译:
protobuf-compiler
、protobuf-devel
- 文档构建工具:
docbook2X
、xmlto
(部分组件需要)
# 三、编译命令示例(开启 Native 特性)
依赖安装完成后,可直接在 Hadoop 源码目录执行以下命令构建启用 native 特性的分发包:
mvn \
-Dsnappy.prefix=x \
-Dbundle.snappy=true \
-Dsnappy.lib=/usr/lib64 \
-Pdist -Pnative -Psrc -Pyarn-ui -Dtar \
-Dzookeeper.version=3.5.9 \
-Dleveldbjni.group=org.fusesource.leveldbjni \
-DskipTests -DskipITs \
-Drequire.openssl=true \
-Drequire.isal=true \
-Drequire.pmdk=true \
-DProtobuf_PROTOC_EXECUTABLE=/usr/bin/protoc \
-DProtobuf_LIBRARY=/usr/lib64/libprotobuf.so \
-DProtobuf_LITE_LIBRARY=/usr/lib64/libprotobuf-lite.so \
-DProtobuf_PROTOC_LIBRARY=/usr/lib64/libprotoc.so \
-Drequire.zstd=true \
install \
-Divy.home=/root/.ivy2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 参数解析
参数 | 说明 |
---|---|
-Pdist -Pnative | 开启分发包构建并编译 native 代码 |
-Drequire.openssl=true | 启用 OpenSSL 支持 |
-Drequire.isal=true | 启用 ISA-L 支持 |
-Drequire.pmdk=true | 启用 PMDK 持久化内存库 |
-Drequire.zstd=true | 启用 Zstd 压缩支持 |
-DProtobuf_* | 显式指定 Protobuf 可执行文件和库路径,防止版本冲突 |
-Dbundle.snappy=true | 将 Snappy 库打包到 native 产物中 |
- 01
- [/metrics/aggregated] — 聚合数据范围 检查点09-19
- 02
- [/metrics] — 反向分析接口参数 请求抓包09-17
- 03
- [/metrics] — 普通指标写入方法 POST09-17