elasticsearch[13241]: [warning] /etc/init.d/elasticsearch: No java runtime was found

Decidimos realizar la instalacion de ElasticSearch para poder realizar el indexado de tablas enormes dentro de nuestro hive.

La instalacion fue transparente, pero luego de levantar el servicio nos mostraba el siguiente error cuando pediamos un  status de nuestro servicio.

Corroboramos que las variables estuvieran bien y por sobre todo este instalado java.

Error que aparecio.

root@srvhadoopt3:~# service elasticsearch status
● elasticsearch.service - LSB: Starts elasticsearch
   Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled)
   Active: active (exited) since Thu 2017-10-12 13:37:34 ART; 6min ago
     Docs: man:systemd-sysv-generator(8)

Oct 12 13:37:33 srvhadoopt3 systemd[1]: Starting LSB: Starts elasticsearch...
Oct 12 13:37:34 srvhadoopt3 elasticsearch[13241]: [warning] /etc/init.d/elasticsearch: No java runtime was found
Oct 12 13:37:34 srvhadoopt3 systemd[1]: Started LSB: Starts elasticsearch.

Solucion

Como solucion,

How to Install Kibana with Debian Packages

Luego de haber realizado mi instalación de Elastic Search, decidí montar un plugin llamado  Kibana, para poder visualizar y explorar datos que se encuentran indexados en  ElasticSearch.

Podemos decir también , que como en el pasado con otros productos open source aparecieron siglas como LAMP (Linux/Apache/MySQL/PHP) para esta familia de elastic, contenemos el stack ELK:

  • Elasticsearch
  • Logstash
  • Kibana

En mi caso, decidi comenzar la instalación de forma manual , con pkgs de Debian en mi Ubuntu server 16.

Descargamos los paquetes del repositorio oficial:

hadoop@srvhadoopt3:$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.3-amd64.deb
--2017-10-12 16:59:33--  https://artifacts.elastic.co/downloads/kibana/kibana-5.6.3-amd64.deb
Resolving proxgue.garba.com.ar (proxgue.garba.com.ar)... 10.0.60.3
Connecting to proxgue.garba.com.ar (proxgue.garba.com.ar)|10.0.60.3|:8080... connected.
Proxy request sent, awaiting response... 200 OK
Length: 52533368 (50M) [application/octet-stream]
Saving to: ‘kibana-5.6.3-amd64.deb’

kibana-5.6.3-amd64.deb                          100%[====================================================================================================>]  50.10M  1.34MB/s    in 65s

2017-10-12 17:00:40 (784 KB/s) - ‘kibana-5.6.3-amd64.deb’ saved [52533368/52533368]

Verifico que el paquete sea seguro y que contiene el hash correspondiente

hadoop@srvhadoopt3:$ sha1sum kibana-5.6.3-amd64.deb
12821507ace7c49eea5011e360f8353007f0ab90  kibana-5.6.3-amd64.deb

Bien, una vez descargado , procedemos con la instalacion del package:

Failed to resolve config path [“/usr/share/elasticsearch/config/elasticsearch.yml”]

Al finalizar la instalación de elasticsearch decidí instalar los plugins:

  • mobz/elasticsearch-head
  • royrusso/elasticsearch-HQ

Pero por alguna razon, el comando no se ejecutaba correctamente y me arrojaba el siguiente error:

root@srvhadoopt3:~# /usr/share/elasticsearch/bin/plugin install -DproxyPort=8080 -DproxyHost=proxgue.garba.com.ar royrusso/elasticsearch-HQ
Error: Could not find or load main class "-DproxyPort=8080"
root@srvhadoopt3:~# /usr/share/elasticsearch/bin/plugin install DproxyPort=8080 DproxyHost=proxgue.garba.com.ar royrusso/elasticsearch-HQ
Exception in thread "main" org.elasticsearch.env.FailedToResolveConfigException: Failed to resolve config path ["/usr/share/elasticsearch/config/elasticsearch.yml"], tried file path ["/usr/share/elasticsearch/config/elasticsearch.yml"], path file ["/usr/share/elasticsearch/config"/"/usr/share/elasticsearch/config/elasticsearch.yml"], and classpath
at org.elasticsearch.env.Environment.resolveConfig(Environment.java:291)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:95)
at org.elasticsearch.plugins.PluginManager.main(PluginManager.java:396)

Análisis

Investigando y analizando la salida de la ejecución del comando, con bash -x por delante, mas los concejos de gente de la comunidad, decidimos cambiar en el script el comando exec y reemplazarlo con el comando echo.

Ese cambio,  me retorno la sentencia para ser ejecutada.

Resolución

Editamos el archivo de configuración /usr/share/elasticsearch/bin/plugin, y vamos al