您必须设置ES_CLASSPATH var

Mic*_* W. 6 elasticsearch

我有本地运行的elasticsearch就好了.好吧,是时候把它放在我的服务器上了.每当我尝试在服务器上运行时,我都会得到"你必须设置ES_CLASSPATH var".据我所知,ES_CLASSPATH已设置完毕.Google展示了一些结果,但没有任何效果.

关于我尝试启动elasticsearch时可能出现什么问题的任何想法?我正在使用5.0.0版本,但尝试使用以前的版本会产生相同的错误.

Raj*_*hna 5

我能够轻松重现该问题。我尝试仅从ES_HOME / bin目录中删除elasticsearch.in.sh脚本,然后尝试从ES_HOME / bin目录中运行./elasticsearch。我有,

You must set the ES_CLASSPATH var
Run Code Online (Sandbox Code Playgroud)

elasticsearch.in.sh文件包含此类的路径设置。所以请确保您有elasticsearch.in.sh在ES_HOME / bin目录中的文件。

根据./elasticsearch脚本,它将在以下所有位置中查找此elasticsearch.in.sh文件。因此,将其放在以下任何位置都可以。

/usr/share/elasticsearch/elasticsearch.in.sh
/usr/local/share/elasticsearch/elasticsearch.in.sh
/opt/elasticsearch/elasticsearch.in.sh 
~/.elasticsearch.in.sh
"$ES_HOME/bin/elasticsearch.in.sh"
Run Code Online (Sandbox Code Playgroud)

请注意,ES_HOME是elasticsearch的基本安装目录。

elasticsearch.in.sh文件的内容供您参考。

#!/bin/bash

# check in case a user was using this mechanism
if [ "x$ES_CLASSPATH" != "x" ]; then
    cat >&2 << EOF
Error: Don't modify the classpath with ES_CLASSPATH. Best is to add
additional elements via the plugin mechanism, or if code must really be
added to the main classpath, add jars to lib/ (unsupported).
EOF
    exit 1
fi

ES_CLASSPATH="$ES_HOME/lib/elasticsearch-5.0.0.jar:$ES_HOME/lib/*"
Run Code Online (Sandbox Code Playgroud)

请注意,它设置了ES_CLASSPATH。