在前文HDFS纠删码(Erasure Coding)一文中提到,HDFS启用ISA-L存储加速库,有有助于提升HDFS纠删码的编码和解码效率。
版本说明如下:
软件 | 版本 |
Hadoop | 3.1.0 |
isa-l | 2.28.0 |
nasm | 2.14.02 |
yasm | 1.2.0 |
启用ISA-L步骤如下:
安装yasm和nasm
在Hadoop集群所有节点上安装yasm和nasm。
###########以下步骤使用root用户#############
yum install -y yasm
yum install -y nasm
注意:isa-l-2.28.0对nasm和yasm有版本要求,低版本在安装时会报错。
编译安装isa-l-2.28.0
在Hadoop集群所有节点上编译安装isa-l-2.28.0。
##########以下步骤使用root######################
tar -zxvf isa-l-2.28.0.tar.gz
cd isa-l-2.28.0
./autogen.sh
./configure --prefix=/usr --libdir=/usr/lib64
make
make install
make -f Makefile.unx
各部操作无报错表示编译安装成功。
检查libisal.so* 是否成功
ll /lib64/libisal.so*
############如果有,则跳过##############
############如果没有有,则复制##############
cp bin/libisal.so bin/libisal.so.2 /lib64
Hadoop上检查是否启用isa-l
在Hadoop上运行检查命令
hadoop checknative
#####################显示如下内容则表示成功启用#################
18/10/12 10:20:03 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
18/10/12 10:20:03 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /usr/hdp/3.0.0.0-1634/hadoop/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
zstd : false
snappy: true /usr/hdp/3.0.0.0-1634/hadoop/lib/native/libsnappy.so.1
lz4: true revision:10301
bzip2: true /lib64/libbz2.so.1
openssl: true /lib64/libcrypto.so
ISA-L: true /lib64/libisal.so.2 -------------> Shows that ISA-L is loaded.
至此,成功在Hadoop上启用ISA-L加速库。
说明:ISA-L加速库对Hadoop纠删码算法有巨大作用,尤其是数据量较大时,因此,强烈建议启用。