首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
30 篇文章
1
ElasticSearch高级功能:Cross Cluster Replication实战
2
ElasticSearch压测工具:esrally离线使用详解
3
ElasticSearch实战:Kibana可视化
4
ElasticSearch实战:IK中文分词插件
5
ElasticSearch实战:将文本文件导入kibana
6
ElasticSearch实战:Linux日志对接Kibana
7
Elasticsearch:flattened 数据类型 (7.3 发行版新功能)
8
Elasticsearch: range 数据类型及基于range的聚合 (7.4发行版新功能)
9
腾讯云ES索引生命周期管理使用教程(视频)
10
腾讯云ES数据备份恢复使用教程(视频)
11
Elasticsearch:透彻理解 Elasticsearch 中的 Bucket aggregation
12
Elasticsearch:pipeline aggregation 介绍
13
Elasticsearch:Index 生命周期管理入门
14
Elastic Stack 7.7 Observability 新功能介绍
15
腾讯云中 Elastic Stack 的 Beats 部署最佳实践
16
海量挑战:腾讯云ES可用性及性能优化实践
17
Elasticsearch: Reindex接口
18
Elasticsearch:Java 运用示例
19
如何安装 Elastic 栈中的 Logstash
20
Logstash: 应用实践 - 装载 CSV 文档到 Elasticsearch
21
2分钟快速了解Elasticsearch
22
Elastic:Elasticsearch 的分片管理策略
23
Elasticsearch:如何把 Elasticsearch 中的数据导出为 CSV 格式的文件
24
Elasticsearch:Elasticsearch 中的 refresh 和 flush 操作指南
25
Kibana: 如何使用 Search Bar
26
Kibana:如何开始使用 Kibana
27
10分钟快速入门海量数据搜索分析引擎 Elasticsearch
28
腾讯万亿级 Elasticsearch 内存效率提升解密
29
腾讯Elasticsearch海量规模背后的内核优化剖析
30
【ElasticSearch性能测试】esrally最新版本的编译、安装与使用

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,就会报错。

代码语言:shell
复制
yum install python3 python3-devel.x86_64 -y

2,下载安装jdk 13

代码语言:javascript
复制
https://www.oracle.com/java/technologies/javase-jdk13-downloads.html

jdk_13下载001

jdk_13下载002

然后rpm安装

代码语言:shell
复制
rpm -ivh jdk-13.0.2_linux-x64_bin.rpm

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

代码语言:javascript
复制
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

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

代码语言:shell
复制
source /etc/profile

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

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

4,安装esrally

执行下列命令

代码语言:javascript
复制
pip3 install esrally

5,检查是否完成安装

任意路径执行下列命令

代码语言:javascript
复制
esrally configure

esrally安装检查

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

常规在线使用

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

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

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

代码语言:javascript
复制
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参数):

代码语言:javascript
复制
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使用离线数据压测过程图

【全文完】

下一篇
举报
领券