2、ES Rally 安装

参考: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 集群,则无需安装(推荐)

JDK12 下载页面

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

参考:http://www.lovean.com/view-89-118022-0.html

你可能感兴趣的:(2、ES Rally 安装)