Closed toby-sutor closed 2 years ago
@toby-sutor Which version of Elasticsearch do you want to benchmark against?
Based on your invocation (and assuming an unmodified ~/.rally/rally.ini
), Rally will attempt to build Elasticsearch from source (master branch) and run it. Both steps have their own set of requirements:
For building, as of writing this, Java 16 is required so you'll need to specify JAVA16_HOME
The last message you received tells you exactly that:
esrally.exceptions.SystemSetupError: Neither JAVA16_HOME nor JAVA_HOME point to a JDK 16 installation.
For running Elasticsearch, Rally will pick the most suitable version from the available JAVAX_HOME
env vars (see docs), however you can just use the bundled java that the ES distro ships with by just specifying --runtime-jdk=bundled
(see docs).
If you don't wish to benchmark against the latest commit of https://github.com/elastic/elasticsearch, you should take a look at the Rally docs for:
Given these clarifications I am not sure if this is a bug, especially as these are Elasticsearch build/run requirements.
Would it make more sense that the default behavior of Rally is not to attempt to build Elasticsearch but assume --pipeline=benchmark-only
and expect the user to provide connection details to a remote cluster? This also prevents people from making wrong methodological decisions (e.g. run the loaddriver on the same machine as Elasticsearch).
Closing this one, working as designed
Trying a race on CentOS 8.3 leads to an error about a missing JDK:
Cannot race. Install a JDK with one of the versions [17, 16, 15, 14, 13, 12, 11] and point to it with one of ['JAVA17_HOME', 'JAVA16_HOME', 'JAVA15_HOME', 'JAVA14_HOME', 'JAVA13_HOME', 'JAVA12_HOME', 'JAVA11_HOME', 'JAVA_HOME'].
I installed the requested package via
yum install java-11-openjdk-devel
and set theJAVA_HOME
andJAVA11_HOME
to the paths accordingly:export JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el8_4.x86_64/
.When I then try to run rally, I get the following message:
Cannot race. JAVA_HOME points to JDK 11 but it should point to JDK 16.
[ERROR] Cannot race. Install a JDK with one of the versions [17, 16, 15, 14, 13, 12, 11] and point to it with one of ['JAVA17_HOME', 'JAVA16_HOME', 'JAVA15_HOME', 'JAVA14_HOME', 'JAVA13_HOME', 'JAVA12_HOME', 'JAVA11_HOME', 'JAVA_HOME'].
.Hence, the JDK requirement is not clear from the initial message as per the below two examples.
Trying it with
export JAVA_HOME=/usr/lib/jvm/java-16-openjdk-16.0.1.0.9-3.rolling.el8.x86_64/
seems to work tho.