From 382bdc76424914be3e5d5b566abd945bb22d9759 Mon Sep 17 00:00:00 2001 From: Jason Tedor <jason@tedor.me> Date: Wed, 9 Aug 2017 14:22:41 +0900 Subject: [PATCH] Elasticsearch 5: Update docs This commit updates the Elasticsearch 5 binding docs to include references for starting Elasticsearch 5, how to configure the transport client, and how to use the low-level REST client binding. --- elasticsearch5/README.md | 45 +++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/elasticsearch5/README.md b/elasticsearch5/README.md index 74646ae6..846f10f2 100644 --- a/elasticsearch5/README.md +++ b/elasticsearch5/README.md @@ -19,7 +19,12 @@ LICENSE file. This section describes how to run YCSB on Elasticsearch 5.x running locally. -### 1. Set Up YCSB +### 1. Install and Start Elasticsearch + +[Download and install Elasticsearch][1]. When starting Elasticsearch, you should +[configure][2] the cluster name to be `es.ycsb.cluster` (see below). + +### 2. Set Up YCSB Clone the YCSB git repository and compile: @@ -27,17 +32,15 @@ Clone the YCSB git repository and compile: cd YCSB mvn clean package -### 2. Run YCSB +### 3. Run YCSB Now you are ready to run! First, load the data: - ./bin/ycsb load elasticsearch5 -s -P workloads/workloada -p path.home=<path> + ./bin/ycsb load elasticsearch5 -s -P workloads/workloada Then, run the workload: - ./bin/ycsb run elasticsearch5 -s -P workloads/workloada -p path.home=<path> - -Note that the `<path>` specified in each execution should be the same. + ./bin/ycsb run elasticsearch5 -s -P workloads/workloada The Elasticsearch 5 binding requires a standalone instance of Elasticsearch. You must specify a hosts list for the transport client to connect to via @@ -52,7 +55,7 @@ configuration see below: ### Defaults Configuration The default setting for the Elasticsearch node that is created is as follows: - cluster.name=es.ycsb.cluster + es.setting.cluster.name=es.ycsb.cluster es.index.key=es.ycsb es.number_of_shards=1 es.number_of_replicas=0 @@ -69,7 +72,6 @@ Assuming that we have a properties file named "myproperties.data" that contains custom Elasticsearch node configuration you can execute the following to pass it into the Elasticsearch client: - ./bin/ycsb run elasticsearch5 -P workloads/workloada -P myproperties.data -s If you wish to change the default index name you can set the following property: @@ -82,3 +84,30 @@ You can also specify es.hosts.list=(\w+:\d+)+ (a comma-separated list of host/port pairs) to change this. + +### Configuring the transport client + +The `elasticsearch5` binding starts a transport client to connect to +Elasticsearch using the transport protocol. You can pass arbitrary settings to +this instance by using properties with the prefix `es.setting.` followed by any +valid Elasticsearch setting. For example, assuming that you started your +Elasticsearch node with the cluster name `my-elasticsearch-cluster`, you would +need to configure the transport client to use the same cluster name via + + ./bin/ycsb run elasticsearch5 -P <workload> \ + -p es.setting.cluster.name=my-elasticsearch-cluster + +### Using the Elasticsearch low-level REST client + +The Elasticsearch 5 bindings also ship with an implementation that uses the +low-level Elasticsearch REST client. The name of this binding is +`elasticsearch-rest`. For example: + + ./bin/ycsb load elasticsearch5-rest -P workloads/workloada + +You can configure the hosts to connect to via the same `es.hosts.list` property +used to configure the transport client in the `elasticsearch5` binding (note +that by default you should use port 9200) + +[1]: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/_installation.html +[2]: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/settings.html -- GitLab