Installing Elasticsearch
Pre-requisites:
If you already have Elasticsearch version 5.6.
x installed, ensure that you set up the properties related to the Elasticsearch server connectivity correctly in
Administer > System > OneData Property Configuration. For details, see
OneData Configuration Properties.
Shut down the
OneData server if it is running.
Use this procedure to install the Elasticsearch engine as either a standalone server or a clustered server and configure Elasticsearch to work with the OneData.
To install an Elasticsearch server
You can install Elasticsearch either on the machine where OneData is installed or on a separate machine.
2. Unzip the Elasticsearch installer from the Zip or tar file and run the installer.
If you want to install Elasticsearch as a clustered server, follow the setup instructions in the Elasticsearch documentation.
If you have multiple instances of OneData installed, create an Elasticsearch cluster with a unique name for each OneData instance. For example, if you have Dev, Test, Prod OneData instances, then you could name the Elasticsearch cluster name corresponding to these instances as OneData-DEV, OneData-TEST, and OneData-PROD.
3. On the Menu toolbar, click Administer > System > OneData Property Configuration, and do the following:
a. Click the ElasticSearch tab.
b. Set the following properties appropriately:
In
onedata.search.elasticsearch.server.httpurl, specify the host name of the machine where you installed Elasticsearch.
In
onedata.search.elasticsearch.server.host, specify the host name of the Elasticsearch server.
4. Complete the security configurations recommended in the Elasticsearch documentation.
5. To verify if the connectivity information from OneData to Elasticsearch is correct:
a. On the Menu toolbar, click Administer > System > OneData Property Configuration.
b. Click the Elasticsearch tab.
c. Verify if the following properties are set correctly:
if you do not have a clustered Elasticsearch setup, ignore the cluster properties in both files.
In the case of the first two properties, you might have customized values. The values given here are the default values.
onedata.search.elasticsearch.server.httpurl=http://localhost:9240 onedata.search.elasticsearch.server.tcp.port= 9340 onedata.search.elasticsearch.cluster.clustername=Elasticsearch_cluster_name d. Navigate to Elasticsearch Home\config and open the elasticsearch.yml file.
e. Verify if the following details in the elasticsearch.yml file match those in Administer > System > OneData Property Configuration > Elasticsearch:
cluster.name: Unique_Elasticsearch_cluster_name
http.port: 9240
transport.tcp.port: 9340
f. Save and close the elasticsearch.yml file.
g. Repeat the steps on each OneData instance.
6. On the Menu toolbar, click Administer > System > OneData Property Configuration > Elasticsearch, and set the following property values appropriately:
onedata.search.elasticsearch.enabled. Set this property to
true to enable the Elasticsearch server in
OneData.
onedata.search.elasticsearch.loaddata.loadonstartup. If the data is static and reindexing is not required every time
OneData restart occurs, after the second
OneData restart, modify the value of the property to
false.
7. Navigate to Elasticsearch Home/bin and follow these steps:
a. Start the Elasticsearch server as follows:
Windows machine: elasticsearch.bat Linux machine: ./elasticsearch Starting the Elasticsearch server before OneData ensures that the OneData loads data into the Elasticsearch server before the search requests from users begin.
b. Make the following HTTP call:
http://localhost:9240/
c. Verify if the HTTP response contains these details to indicate that the Elasticsearch server is running:
cluster_name: Unique_Value_for_OneData_Instance number (version number) = Elasticsearch_version_number If you have set the onedata.search.elasticsearch.loaddata.loadonstartup property to true, OneData loads all supported data objects to the Elasticsearch server on startup.
Note: If there are errors when loading data objects to the Elasticsearch server, check the log file onedataSearchEngine.log. This log provides a summary of the entire data load process in INFO mode. This log summary also includes the number of records processed for each table.
8. Start the OneData server.
Elasticsearch is now ready for use in OneData.
9. Install the elasticsearch-head plugin that provides a web-based front end to monitor and interact with the Elasticsearch server as follows:
Windows machine: i. Navigate to the directory Elasticsearch Home\bin.
ii. From the command prompt, run the following script:
plugin -install mobz/elasticsearch-head
Linux machine: i. Navigate to the directory Elasticsearch Home\bin.
ii. From the command prompt, run the following script:
plugin.sh install mobz/elasticsearch-head
To access the plugin, use HTTP URL defined in the property
onedata.search.elasticsearch.server.httpurl as
onedata.search.elasticsearch.server.httpurl_value/_plugin/head/. For more details on the elasticsearch-head plugin, go to
http://mobz.github.io/elasticsearch-head/.
Next Steps:
1. Complete all the configurations required to enable Elasticsearch full-text search. For details of the Elasticsearch configuration parameters details, see
OneData Configuration Properties.
2. In Job Center, schedule Elasticsearch data refresh jobs from the work area to ensure that all latest changes in the repository are available users.