ElasticSearch压测工具:esrally离线使用详解

原创声明:本文首发腾讯云·云+社区,未经允许,不得转载

前言:

esrally是一款用于ElasticSearch的开源压测工具。默认情况下,其工作方式是:在线获取其位于海外主机上的数据集,然后在本地执行压测。因此,在国内网络情况下(或某些没有网络的主机上),在线获取数据集这一步骤将非常耗时甚至无法完成。

官网文档:https://esrally.readthedocs.io/en/latest/

然而,官网文档中,对于离线使用的方法基本是含糊其辞,几乎无法参考。

下面,通过实践和摸索,介绍一下其离线使用的方法。


环境简介:

腾讯云主机CVM:CentOS 7.6 IP:10.0.0.15

ElasticSearch实例:ES 7.5.1 IP&PORT:10.0.0.149:9200 UserName&PassWord: elastic,QAZwsx123

安装:

1,安装python3

无需卸载CentOS7自带的python2.7,直接安装python3即可

如果不安装 python3-devel.x86_64,后面执行pip3 install esrally,就会报错。

yum install python3 python3-devel.x86_64 -y

2,下载安装jdk 13

https://www.oracle.com/java/technologies/javase-jdk13-downloads.html
jdk_13下载001
jdk_13下载002

然后rpm安装

rpm -ivh jdk-13.0.2_linux-x64_bin.rpm

配置环境变量,在 /etc/profile文件的末尾加入以下内容

export JAVA_HOME=/usr/java/jdk-13.0.2
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

并执行下列命令使环境变量生效

source /etc/profile

3,安装 git 1.9以后的版本(略)

注意:需删除CentOS7自带的git 1.8版本。

4,安装esrally

执行下列命令

pip3 install esrally

5,检查是否完成安装

任意路径执行下列命令

esrally configure
esrally安装检查

看到上图,即表示安装完成了。

常规在线使用

特点:先下载数据集,然后解压,再进行压测,耗时非常久,动辄2-3小时甚至更久

最令人头疼的是,每次运行,都要重新在线下载。

任意路径下执行下列命令,等待结果即可(我们默认使用数据集 geonames)

esrally race --pipeline=benchmark-only --target-hosts=10.0.0.145:9200 --track=geonames  --client-options="basic_auth_user:'elastic',basic_auth_password:'QAZwsx123'" --challenge=append-no-conflicts
常规在线使用方法

离线使用

1,手工下载数据集

我们依旧以 geonames 数据集为例

我们在elastic官网github上可以看到esrally的数据集相关描述 https://github.com/elastic/rally-tracks

通过查看 rally-tracks/download.sh,我们可以看到,所有数据源都是从一台亚马逊主机上下载的

亚马逊主机地址

通过阅读代码,我们知道:数据集的主路径在 http://benchmarks.elasticsearch.org.s3.amazonaws.com/corpora

通过查看 rally-tracks/geonames/files.txt文件,我们知道了geonames的数据集名称叫 documents-2.json.bz2 和 documents-2-1k.json.bz2 。

geonames数据集文件描述

因此,我们尝试组合上述地址,使用浏览器访问:

http://benchmarks.elasticsearch.org.s3.amazonaws.com/corpora/geonames/documents-2.json.bz2

开始下载geonames数据集

我们发现,数据集可以下载了。

同理,其他数据集,也可以通过这种方式进行手工下载。

2,数据集配置

此小节依旧以geonames为例。

数据集下载完成后,需要放置在CentOS的如下路径,若没有geonames路径,则手工创建:

离线数据配置

3,使用离线数据进行压测

任意路径执行下列命令(务必在命令最后使用 --offline参数):

esrally race --pipeline=benchmark-only --target-hosts=10.0.0.145:9200 --track=geonames  --client-options="basic_auth_user:'elastic',basic_auth_password:'QAZwsx123'" --challenge=append-no-conflicts  --offline
离线压测开始

如上图,离线压测直接开始,无需漫长的等待。

当然,这一系列的操作,目的是为了,下次进行压测时,直接可以使用上面离线数据,而无需漫长地等待在线下载了。

最后,我们可以看到压测过程如下图。

esrally使用离线数据压测过程图

【全文完】

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
ElasticSearch压测工具:esrally离线使用详解
esrally是一款用于ElasticSearch的开源压测工具。默认情况下,其工作方式是:在线获取其位于海外主机上的数据集,然后在本地执行压测。因此,在国内网...
<<上一篇
下一篇>>