参考:Docs » Installation
需要安装:
- CentOS6+
- Python3.5+
- openssl-devel-1.0.1+
- glibc2.17+
- esrally (a Python module)
- Git1.9+
为了方便打包移植,所以使用编译安装的方式来进行部署。
INSTALL_HOME=/apps/svr/esrally
GIT_HOME=$INSTALL_HOME/git-1.9
GLIBC_HOME=$INSTALL_HOME/glibc-2.17
OPENSSL_HOME=$INSTALL_HOME/openssl-1.1.1c
PYTHON3_HOME=$INSTALL_HOME/python-3.5.2
安装 Python3.5+【必选】
Rally 是使用 Python3 编写的,必须安装 Python3.5+。
1、编译安装 glibc【必选】
选择 CentOS7 默认版最好,不要使用太新的版本,否则要编译很多新版工具,例如 gcc、make、cmake 等等
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar -zxf glibc-2.14.tar.gz
# 不能在 glibc-2.xx 目录编译,所以需要新建一个空目录
mkdir build
cd build
../glibc-2.14/configure --prefix=/apps/svr/esrally/glibc-2.14
make -j $(grep -c ^process /proc/cpuinfo)
make install
2、编译安装 openssl【可选】
Rally 默认通过 https 去下载 github 的 tracks 配置,所以需要 Python 支持 SSL。如果手动下载,则可直接跳过。
Python3 与 OpenSSL 版本对应关系:
- Python3.5.2 需要 openssl-devel-1.0.1(CentOS6/7 最新版是 1.0.1e)
- Python3.7.2 需要 openssl-devel-1.0.2 or 1.1+(CentOS6/7 需要手动编译安装)
编译安装 openssl-devel-1.0.1e
# 浏览器下载最新版源码
https://www.openssl.org/source/openssl-1.1.1c.tar.gz
# 编译
tar -zxf openssl-1.1.1c.tar.gz
cd openssl-1.1.1c
./config --prefix=$OPENSSL_HOME
make -j $(grep -c ^process /proc/cpuinfo)
# 安装
make install
安装 Python3,缺少 ssl 对应的版本时,make 编译失败会提示:
Could not build the ssl module!
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().
LibreSSL 2.6.4 and earlier do not provide the necessary APIs, https://github.com/libressl-portable/portable/issues/381
3、编译安装 Python3【必选】
CentOS6/7 的 YUM repo 只有 Python2.7,Python3 需要进行编译安装
# 编译
#yum install sqlite-devel openssl-devel bzip2-devel
yum install bzip2-devel
#export CPPFLAGS="-I$OPENSSL_HOME"
export LD_LIBRARY_PATH=$OPENSSL_HOME/lib:$OPENSSL_HOME/lib:$LD_LIBRARY_PATH
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar -zxf Python-3.5.2.tgz
cd Python-3.5.2
./configure --prefix=$PYTHON3_HOME
make -j $(grep -c ^process /proc/cpuinfo)
# 安装
make install
# 验收
export PATH=$PYTHON3_HOME/bin:$PATH
which python3
请注意:bin/python 特指 Python2,bin/python3 特指 Python3;pip 与 pip3 同理
如果 python3 -m ssl
提示没有 ssl 模块,则需要安装:
pip3 install ssl
如果需要重新编译 Python3,则需要先清理文件
# 清理编译文件
make clean
make distclean
# 删除安装目录
rm -rf $PYTHON3_HOME
安装 Rally【必选】
使用国内 pip repo 加快 install 速度
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
pip3 install esrally
安装 Git1.9+【必选】
esrally 默认使用 git1.9+ 去 github 下载 tracks 配置;在执行 esrally 命令时,每次都会检查 git 的版本,所以必须安装。
CentOS6/7 的 YUM repo 默认只有 git1.8,所以需要编译安装
yum install curl-devel expat-devel perl-ExtUtils-MakeMaker
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
tar -zxf git-2.9.5.tar.gz
cd git-2.9.5
./configure --prefix=$GIT_HOME
make -j $(grep -c ^process /proc/cpuinfo) all
make install
export PATH=$GIT_HOME/bin:$GIT_HOME/libexec/git-core:$PATH
# 验证
which git
git --version
安装 JDK12【可选】
使用默认配置时,Rally 会在本机创建一个 ES 实例,对齐进行压测,这时指定使用 JDK12 运行 ES 实例(不推荐)。如果压测的是已存在的 ES 集群,则无需安装(推荐)
tar -zxf jdk-12.0.1_linux-x64_bin.tar.gz -C /apps/svr/
export PATH=/apps/svr/jdk-12.0.1/bin:$PATH
which java
java -version
更新系统证书【可选】
脚本 ~/.rally/benchmarks/tracks/default/download.sh 的 curl 命令使用 https,但是 CentOS 默认的证书都很旧的,跑 curl 时会提示证书太旧,导致执行失败,需要更新系统证书:
sudo update-ca-trust
ll -tr /etc/pki/ca-trust/extracted/pem/
# 验证
curl https://github.com
网友评论