Open liusheng opened 4 years ago
问题记录:
根据Hadoop的文档,当在yarn-site.xml
中配置yarn.nodemanager.resource.detect-hardware-capabilities
为true,则hadoop集群会自动探测系统的cpu和memory资源,但是在ARM集群上面尝试,探测的结果不正确。
<property>
<description>Enable auto-detection of node capabilities such as
memory and CPU.
</description>
<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
<value>true</value>
</property>
实际根据nodemanager的启动日志,可以发现探测的结果为:
2020-09-17 16:32:11,913 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Registered with ResourceManager as hadoop-arm-kae-2:38733 with total resource of <memory:28629, vCores:1>
而实际上节点的配置为32vCPU+64G 内存。
这里记录一下从源码安装和配置KAE来测试起对于Hadoop中性能的影响。KAE相关组件包含3个代码仓库:
0. 环境信息
1. 安装依赖
并确认OpenSSL的版本>=
1.1.1a
2. 安装编译KAEdriver
再确认一下内核模块是否成功加载
确认
3. 编译安装KAE
这一个要保证OpenSSL和libssl-dev正确安装
注意,在Ubuntu18.04下,上述验证会失败,是因为kae.so文件的路径不对,可以手动拷贝.so文件到对应的路径:
4. 安装zlib压缩库
5. 验证
可以通过lzbench结合“silesia.tar”来测试配置了KAE的zlib的性能
验证openssl的RSA性能
可以看出开启KAE以后,openssl RSA性能高了很多。
编译lzbench 需要在lzbench的Makefile中增加
LDFLAGS += -lpthread -lz -L/usr/local/kaezip/lib
并且注释掉lzbench自带的zlib代码编译的语句...
ZLIB_FILES = zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o
ZLIB_FILES += zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o
ZLIB_FILES += zlib/uncompr.o zlib/zutil.o
可以在作上述修改前后执行lzbench测试做前后对比
在Hadoop集群中,可以在
etc/hadoop/mapred-site.xml
做如下配置来使能kaezip库6. Q&A