在Linux下 CentOS7离线安装Rally2.7.0

环境要求

  1. Python3.8+ 官网下载地址

  2. pip20.3+ 官网下载地址

  3. git1.9+ 官网下载地址

  4. pbzip2 官网下载地址

  5. bzip2 官网下载地址

  6. JDK 1.8 Oracle版下载地址

  7. CentOS7系统需要升级openssl 官网下载地址

    Python3.8需要升级setupools 官网下载地址

  8. 安装编译依赖

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker;
    

Rally离线安装包官网下载地址,找到2.7.0版本,下载文件esrally-dist-linux-2.7.0.tar.gz

部署模式

  • Rally与ES分开部署

  • 通过自定义用户esrally安装Python3.8+和Rally2.7.0,其他的在root用户下提前安装。

安装步骤

  1. 编译依赖部分

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker;
    
  2. pbzip2部分

    # 新建esrally用户与用户组
    groupadd esrally
    useradd -g esrally esrally
    # 安装pbzip2
    mkdir -p /home/esrally/software/pbzip2
    tar -zxvf pbzip2-1.1.13.tar.gz
    cd pbzip2-1.1.13
    make && make install PREFIX=/home/esrally/software/pbzip2
    
  3. openssl 升级部分

    openssl version
    tar -zxvf openssl-1.1.1s.tar.gz
    cd openssl-1.1.1s/
    ./config --prefix=/usr/local/openssl
    make && make install
    mv /usr/bin/openssl /usr/bin/openssl.old
    mv /usr/include/openssl /usr/include/openssl.old
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl;
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    ldconfig
  4. Python3.8部分

    
    su - esrally
    mkdir -p software
    mkdir -p python
    exit
    # 为esrally安装python?
    tar -xvf /home/esrally/software/Python-3.8.16.tar.xz -C /home/esrally/software/python/
    chown esrally:esrally -R /home/esrally/software/
    su - esrally
    # 编译 Python-3.8.16
    cd software/python/Python-3.8.16/
    ./configure --prefix=/home/esrally/software/python/python3
    # 安装python3
    mkdir -p /home/esrally/software/python/python3
    make && make install
    # 配置环境变量
    vim ~/.bashrc;
    export PATH=$PATH:/home/esrally/software/python/python3/bin
    source ~/.bashrc;
    python3 --version# 升级setuptools python3方式
    tar -zxvf setuptools-65.6.3.tar.gz
    cd setuptools-65.6.3/
    python3 setup.py build
    python3 setup.py install
    pip3 show setuptools
    pip3 uninstall setuptools
    pip3 show setuptools
    
  5. esrally部分

    # 解压安装包
    tar -xzf esrally-dist-linux-*.tar.gz -C /opt/software/
    # 执行安装脚本
    sudo ./opt/software/esrally-dist-linux-*/install.sh
    # 验证是否安装成功
    esrally --version
    

安装错误小结

错误一,python没有成功编译,在安装编译依赖之后,重新安装编译安装Python3

subprocess.CalledProcessError: Command '['/home/esrally/software/python/Python-3.8.16/python', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/tmp/tmpoe84zvss/setuptools-56.0.0-py3-none-any.whl\', \'/tmp/tmpoe84zvss/pip-22.0.4-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/tmp/tmpoe84zvss\', \'--root\', \'/\', \'--upgrade\', \'setuptools\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' returned non-zero exit status 1.
make: *** [install] Error 1

错误二:gcc没有成功安装,需要yum安装

[esrally@~ pbzip2-1.1.13]$ make && make install PREFIX=/home/esrally/software/pbzip2
g++ -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DUSE_STACKSIZE_CUSTOMIZATION -pthread -D_POSIX_PTHREAD_SEMANTICS  pbzip2.cpp BZ2StreamScanner.cpp ErrorContext.cpp -o pbzip2 -lbz2 -lpthread
make: g++: Command not found
make: *** [pbzip2] Error 127
yum install "gcc-c++.x86_64"

错误三:bzip2c没有成功安装,需要yum安装

[esrally@~ pbzip2-1.1.13]$ make && make install PREFIX=/home/esrally/software/pbzip2
g++ -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DUSE_STACKSIZE_CUSTOMIZATION -pthread -D_POSIX_PTHREAD_SEMANTICS  pbzip2.cpp BZ2StreamScanner.cpp ErrorContext.cpp -o pbzip2 -lbz2 -lpthread
pbzip2.cpp:33:19: fatal error: bzlib.h: No such file or directory#include <bzlib.h>^
compilation terminated.
make: *** [pbzip2] Error 1
yum install  bzip2-devel.x86_64

错误四:python中setuptools版本过低,需要单独升级

Processing ./esrally-dist-2.7.0/bin/py-cpuinfo-7.0.0.tar.gzPreparing metadata (setup.py) ... errorerror: subprocess-exited-with-error× python setup.py egg_info did not run successfully.│ exit code: 1╰─> [1 lines of output]ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed× Encountered error while generating package metadata.
╰─> See above for output.note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
tar -zxvf setuptools-65.6.3.tar.gzcd setuptools-65.6.3/
python3 setup.py build
python3 setup.py install
pip3 show setuptools
pip3 uninstall setuptools
pip3 show setuptools

错误五:缺少压缩集成包_bz2,这个可以从低版本中找到,然后修改文件名copy至python3.8安装目录lib-dynload下。

[esrally@~ software]$ esrally --version
Traceback (most recent call last):File "/home/esrally/software/python/python3/bin/esrally", line 5, in <module>from esrally.rally import mainFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/rally.py", line 31, in <module>from esrally import (File "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/actor.py", line 25, in <module>from esrally import exceptions, logFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/log.py", line 25, in <module>from esrally.utils import ioFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/utils/io.py", line 20, in <module>import bz2File "/home/esrally/software/python/python3/lib/python3.8/bz2.py", line 19, in <module>from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'
# 移动
mv _bz2.cpython-38-x86_64-linux-gnu.so /home/esrally/software/python/python3/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so
# 赋权
chmod +x /home/esrally/software/python/python3/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so

错误六:libbz2.so.1.0文件缺失,通过增加软链接的方式解决

[esrally@~ software]$ esrally --version
Traceback (most recent call last):File "/home/esrally/software/python/python3/bin/esrally", line 5, in <module>from esrally.rally import mainFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/rally.py", line 31, in <module>from esrally import (File "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/actor.py", line 25, in <module>from esrally import exceptions, logFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/log.py", line 25, in <module>from esrally.utils import ioFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/utils/io.py", line 20, in <module>import bz2File "/home/esrally/software/python/python3/lib/python3.8/bz2.py", line 19, in <module>from _bz2 import BZ2Compressor, BZ2Decompressor
ImportError: libbz2.so.1.0: cannot open shared object file: No such file or directory
ln -s /usr/lib64/libbz2.so.1.0.6 /usr/lib64/libbz2.so.1.0

错误七:openssl版本过低,需要对系统的openssl进行升级,并重新编译安装Python

[esrally@~ software]$ esrally --version
Traceback (most recent call last):File "/home/esrally/software/python/python3/bin/esrally", line 5, in <module>from esrally.rally import mainFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/rally.py", line 31, in <module>from esrally import (File "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/racecontrol.py", line 26, in <module>from esrally import (File "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/mechanic/__init__.py", line 19, in <module>from .mechanic import (File "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/mechanic/mechanic.py", line 30, in <module>from esrally.mechanic import launcher, provisioner, supplier, teamFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/esrally/mechanic/supplier.py", line 28, in <module>import dockerFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/__init__.py", line 2, in <module>from .api import APIClientFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/api/__init__.py", line 2, in <module>from .client import APIClientFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/api/client.py", line 10, in <module>from .. import authFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/auth.py", line 7, in <module>from .utils import configFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/utils/__init__.py", line 3, in <module>from .decorators import check_resource, minimum_version, update_headersFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/utils/decorators.py", line 4, in <module>from . import utilsFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/utils/utils.py", line 16, in <module>from ..tls import TLSConfigFile "/home/esrally/software/python/python3/lib/python3.8/site-packages/docker/tls.py", line 2, in <module>import sslFile "/home/esrally/software/python/python3/lib/python3.8/ssl.py", line 98, in <module>import _ssl             # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'
openssl version
tar -zxvf openssl-1.1.1s.tar.gz
cd openssl-1.1.1s/
./config --prefix=/usr/local/openssl
make && make install
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl;
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfigpython3 -c "import sysconfig; print(sysconfig.get_config_var('CONFIG_ARGS'))" '--prefix=/usr/local/python3' '--with-openssl=/usr/local/openssl' '--enable-shared'# 重编译pythoncd software/python/Python-3.8.16/
./configure --prefix=/home/esrally/software/python/python3 --with-openssl=/usr/local/openssl --enable-shared
make && make install

错误八:缺少libssl.so.1.1包,可以在openssl安装目录下寻找,并copy至/usr/lib64文件夹中

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
find / -name *libssl.so.1.1ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

错误九:缺少libpython3.8.so.1.0包,可以在python目录下寻找,并copy至/usr/lib64文件夹中

find / -name libpython3.8.so.1.0
cp /opt/software/python/Python-3.8.16/libpython3.8.so.1.0  /usr/lib64/

卸载

pip3 install esrally

【ES实战】在Linux下 CentOS 7离线安装Rally2.7.0相关推荐

  1. 【OpenCV】在Linux下用CMAKE编译安装OpenCV3.2.0

    [安装相关软件和库] 1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以 ...

  2. linux mysql解压完_【Linux】CentOS 7.4 安装 MySQL 8.0.12 解压版

    安装环境/工具 1.Linux(CentOS 7.4版) 2.mysql-8.0.12-el7-x86_64.tar.gz 安装步骤 1.下载mysql解压版(mysql-8.0.12-el7-x86 ...

  3. 「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四) 上次说了fiddl ...

  4. Linux 下 微擎 的安装使用

    Linux 下 微擎 的安装使用 我的小站.Github 微擎 是一款基于WEB2.0(PHP+Mysql)技术架构,免费开源的公众平台管理系统,提供公众号.微信小程序.支付宝小程序.百度熊掌号.移动 ...

  5. mysql5.7.20linux安装,linux下 mysql5.7.20安装(精华)

    在linux 系统中mysql配置文件的读取顺序为: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 第一步 创 ...

  6. linux eclipse插件安装,Linux 下 EclipseME 插件的安装步骤

    Linux 下 EclipseME 插件的安装步骤 最近在linux下作开发,参考网络资料,成功将 eclipseME 插件安装至 eclipse.这里记录下来,只为了方便更多的人! 背景: linu ...

  7. Linux 下的 pstack 工具安装及简单应用

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  8. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

    Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...

  9. linux mysql5.7.36 离线安装使用全教程(含安装包)

    linux mysql5.7.36 离线安装使用全教程(含安装包) 大家好,我是酷酷的韩~ 1.前期准备: mysql版本5.7.36 百度网盘下载地址如下: 内含 mysql-5.7.36-linu ...

最新文章

  1. 《机器学习实践》程序清单2-2
  2. Ubuntu~Tensorflow~GPU
  3. C#获得枚举类型的长度
  4. HDOJ5547 SudoKu
  5. html自定义js程序,JS中微信小程序自定义底部弹出框
  6. jquery关于checkbox在ie下的一个bug
  7. 做柜员还是程序员_应届生放弃互联网大厂回家乡银行:程序员五万比不上柜员五千...
  8. java 僵尸进程_Linux 僵尸进程
  9. crmeb多商户二开crmeb类库二开文档services服务类【5】
  10. plist 文件详解
  11. 从四面体数据中提取表面
  12. Ubuntu菜鸟入门(七)—— 微信安装
  13. 二阶系统的单位阶跃响应与比例控制器
  14. 【小疯疯】百度云不限速下载
  15. 输出字符串中匹配最多的括号数
  16. eBay Inc(EBAY)2020年第三季度收益电话会议记录
  17. 关于电气工程及其自动化学科,国家电网的这些事你都知道吗?
  18. 用SQL语句向数据库添加date类型字段
  19. 华云数据打造企业社会责任践行范本
  20. Jarvis oj level3

热门文章

  1. 制作一个浪漫温馨的生日礼物送她~html+css+javascript蓝色梦幻海洋3D相册(含音乐)...
  2. 数据点太多matlab曲线较粗,matlab数据太多怎么拟合曲线
  3. 【刷题】——小红书三套卷
  4. 几招搞定Windows 7累计补丁包的安装
  5. 微软认证一览表(附图)
  6. 基于大数据的情报分析与服务系统架构设计
  7. html 按钮位于div底部,css按钮定位在div底部
  8. Java101班1组作业完成情况
  9. 2008 r2服务器日志文件,Windows2008R2共享文件访问日志查询的设置方法
  10. ESP分区和MSR分区是干嘛的?