在OSX Mavericks上安装Elasticsearch
我试图在OSX Mavericks上安装Elasticsearch 1.1.0,但当我尝试启动时遇到以下错误:
:> ./elasticsearch Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.Version at org.elasticsearch.bootstrap.Bootstrap.buildErrorMessage(Bootstrap.java:252) at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:236) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
另外当我用-v arg执行相同的命令时,我得到这个错误:
:> ./elasticsearch -v Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_36 at org.elasticsearch.Version.<clinit>(Version.java:42)
这是我的环境:
Java版本
>: java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
Instalationpath(从elasticsearch下载页面下载的.tar.gz压缩文件并在此处提取):
/usr/local/elasticsearch-1.1.0
ENVvariables:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home CLASSPATH=/usr/local/elasticsearch-1.1.0/lib/*.jar:/usr/local/elasticsearch-1.1.0/lib/sigar/*.jar
UPDATE
我终于使它的工作,不幸不知道如何,因为我试了很多改变:)。 但是这里有一个我可以帮助的更改列表:
-
我删除jdk和jre,并重新安装在一个干净的环境。 http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#A1096855
-
我删除了所有的caching目录。我想这可能是现在正在工作的“原因”
〜/图书馆/caching
/图书馆/caching
-
我删除了CLASSPATH env var。
-
ES_PATH和ES_HOME环境variables也没有设置,但我认为这不是那么重要。
注意:如果我正在使用brew进行安装,现在它也在工作。
谢谢。
你应该考虑使用brew 。 这是一个很好的工具,将照顾依赖,版本控制等等。
要使用brew安装Elasticsearch,只需:
brew update brew install elasticsearch
繁荣! 完成。
之后按照Elasticsearch的说明:
-
要在login时启动Elasticsearch,请执行以下操作:
ln -sfv /usr/local/opt/elasticsearch/*.plist ~/Library/LaunchAgents
-
然后现在加载Elasticsearch:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.elasticsearch.plist
或者,如果您不想/需要launchctl,则可以运行:
elasticsearch
由于实际“安装”到Mac上并没有很好的说明:
简洁版本:
- 安装Java(更喜欢最新的支持版本)
- 设置
JAVA_HOME
环境variables。 - 下载Elasticsearch版本(tar或zip)。
- 从下载的文件中提取Elasticsearch。
- 从提取的目录运行
bin/elasticsearch
。
长版本:
-
下载Java
-
如果你不会在同一台机器上写代码,只需要JRE。
-
我假设你正在获得最新的JDK,它现在是JDK 8(正如你看起来那样,而且我已经安装在我的机器上了)。
-
-
下载并提取Elasticsearch并将其解压到某个目录。
- 例如:
mkdir -p ~/dev/elasticsearch
-
可select将下载的文件移动到那里:
mv Downloads/elasticsearch* ~/dev/elasticsearch
-
提取下载的文件:
cd ~/dev/elasticsearch
(如果你在步骤2中移动它)-
如果是zip,则
unzip elasticsearch-1.1.0.zip
(或者如果您不想将cd
放入目录,那么只需运行unzip elasticsearch-1.1.0.zip -d ~/dev/elasticsearch
) -
如果是tar,那么
tar -xvf elasticsearch-1.1.0.tar.gz
(或者如果你不想把cd
放到目录下,那就运行tar -xvf elasticsearch-1.1.0.tar.gz -C ~/dev/elasticsearch
)
-
-
清除(如果你想)通过删除下载的文件:
rm elasticsearch-1.1.0.*
- 例如:
-
打开您的bashconfiguration文件设置的
.bash_profile
文件:vi ~/.bash_profile
-
在文件中,导出您的环境variables(s)
export ES_HOME=~/dev/elasticsearch/elasticsearch-1.1.0
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
export PATH=$ES_HOME/bin:$JAVA_HOME/bin:$PATH
-
closures并重新打开您的terminal或
-
运行
source ~/.bash_profile
来更新环境variables
-
-
运行Elasticsearch:
elasticsearch
- 更传统的运行方式是完成上述所有操作,但不要将
$ES_HOME/bin
添加到PATH
。 然后,转到ES_PATH
(cd $ES_PATH
,然后bin/elasticsearch
$ES_PATH/bin/elasticsearch
)或运行$ES_PATH/bin/elasticsearch
。
- 更传统的运行方式是完成上述所有操作,但不要将
注意:不要没有很好的理由设置您的CLASSPATH
。 脚本会为你做。
要更新ElasticSearch,只需运行brew upgrade elasticsearch
elasticsearch
-
您应该尝试使用上次更新的brew:
brew update
-
并安装Cask java:
brew cask install java
-
之后,您可以安装elasticsearch:
brew install elasticsearch
-
现在启动elasticsearch现在使用:
brew services start elasticsearch
或者你可以运行:
elasticsearch