在以RPM包安裝elasticsearch過程中出現報錯JAVA環境的問題:
● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Mon 2019-01-14 11:27:16 CST; 5s ago Docs: http://www.elastic.co Process: 2035 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1/FAILURE) Main PID: 2035 (code=exited, status=1/FAILURE) Jan 14 11:27:16 ip-172-31-30-62.ec2.internal systemd[1]: Started Elasticsearch. Jan 14 11:27:16 ip-172-31-30-62.ec2.internal systemd[1]: Starting Elasticsearch... Jan 14 11:27:16 ip-172-31-30-62.ec2.internal elasticsearch[2035]: which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin) Jan 14 11:27:16 ip-172-31-30-62.ec2.internal elasticsearch[2035]: could not find java; set JAVA_HOME or ensure java is in PATH Jan 14 11:27:16 ip-172-31-30-62.ec2.internal systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE Jan 14 11:27:16 ip-172-31-30-62.ec2.internal systemd[1]: Unit elasticsearch.service entered failed state. Jan 14 11:27:16 ip-172-31-30-62.ec2.internal systemd[1]: elasticsearch.service failed.
也就是說就算是你設置好JAVA全局環境變量后,elasticsearch啟動的時候依然是在上面紅色字體的PATH變量里面找java變量。這個不清楚究竟是什么原因。我們暫時把它當做是丟環境變量的原因吧。不過我們倒是有其他的解決方法:
在/etc/sysconfig/elasticsearch的這個文件里面設置JAVA_HOME環境變量:
################################ # Elasticsearch ################################ # Elasticsearch home directory #ES_HOME=/usr/share/elasticsearch # Elasticsearch Java path JAVA_HOME=/usr/local/jdk # Elasticsearch configuration directory ES_PATH_CONF=/etc/elasticsearch # Elasticsearch PID directory #PID_DIR=/var/run/elasticsearch
就是上面背景為青色的字體,設置一下環境變量后就可以正常啟動了。
有時候也是編譯環境的問題,比如上面這個問題就是,JAVA的jdk是源碼安裝的,而elasticsearch是yum一鍵安裝的,因此很容易出現問題,所以我建議兩者的安裝盡量一致,jdk也使用yum安裝比較好,這個問題就不會出現了。