在OSX Mavericks上安装Elasticsearch

时间:2014-04-03 22:33:51

标签: elasticsearch osx-mavericks

我试图在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)

安装路径(从elasticsearch下载页面下载.tar.gz存档并在此处提取):

/usr/local/elasticsearch-1.1.0

ENV vars:

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

更新

我终于让它工作,不幸的是不确定如何,因为我尝试了很多变化:)。但是,我在这里做出的改变列表可以提供帮助:

〜/库/缓存

/库/缓存

  • 我删除了CLASSPATH env var。

  • ES_PATH和ES_HOME env vars也没有设置,但我认为这不是那么重要。

注意:如果我使用brew进行安装,现在它也可以正常工作。

感谢。

6 个答案:

答案 0 :(得分:214)

您应该考虑使用brew。它是一个很好的工具,可以处理依赖关系,版本控制等等。

要使用brew安装Elasticsearch,只需:

brew update
brew install elasticsearch

轰!完成。

之后按照Elasticsearch说明进行操作:

  1. 要让launchd在登录时启动Elasticsearch:

    ln -sfv /usr/local/opt/elasticsearch/*.plist ~/Library/LaunchAgents
    
  2. 然后立即加载Elasticsearch:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.elasticsearch.plist
    

    或者,如果您不想/需要launchctl,您可以运行:

    elasticsearch
    

答案 1 :(得分:28)

由于没有很好的说明将其“安装”到Mac上:

简短版本:

  1. 安装Java(首选支持的最新版本)
  2. 设置JAVA_HOME环境变量。
  3. 下载Elasticsearch版本(tar或zip)。
  4. 从下载的文件中提取Elasticsearch。
  5. 从解压缩的目录中运行bin/elasticsearch
  6. 长版:

    1. 下载Java

      • 如果您不在同一台机器上编写代码,则只需要JRE。

      • 我假设您正在获取最新的JDK,目前是JDK 8(正如您所看到的那样,我已安装在我的计算机上工作)。

    2. Download and extract Elasticsearch并将其解压缩到某个目录中。

      1. 例如:mkdir -p ~/dev/elasticsearch
      2. 可选择将下载的文件移到那里:

        mv Downloads/elasticsearch* ~/dev/elasticsearch

      3. 提取下载的文件:

        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

      4. 通过删除下载的文件进行清理(如果需要):

        rm elasticsearch-1.1.0.*

    3. 打开您的bash个人资料设置的.bash_profile文件:

      vi ~/.bash_profile

    4. 在文件中,导出环境变量

      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

      • 关闭并重新打开终端

      • 运行source ~/.bash_profile更新环境变量

    5. 运行Elasticsearch:

      elasticsearch

      • 更传统的运行方式是完成以上所有操作,但$ES_HOME/bin添加到PATH。然后,转到ES_PATHcd $ES_PATH,然后bin/elasticsearch)或运行$ES_PATH/bin/elasticsearch
    6. 注意:如果没有充分的理由,请不要设置CLASSPATH。脚本将为您完成。

答案 2 :(得分:8)

  1. 您应该尝试在上次更新时使用brew:

    brew update
    
  2. 并安装Cask java:

    brew cask install java
    
  3. 之后你可以安装elasticsearch:

    brew install elasticsearch
    
  4. 现在使用启动弹性搜索:

    brew services start elasticsearch
    

    或者你可以跑:

    elasticsearch
    

答案 3 :(得分:2)

要更新ElasticSearch,只需运行brew upgrade elasticsearch

即可

答案 4 :(得分:1)

更新您的java

brew update
brew cask install java

用自制软件安装它 brew install elasticsearch

答案 5 :(得分:0)

安装 gpg && 安装java或jdk

1-Import the repository’s GPG key:

wget -qO - https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    
2-this is code repository elasticserach in linux for download

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

3-link download elasticsearch

  https://www.elastic.co/downloads/elasticsearch

如果出错 "elasticsearch.service 的作业因超时而失败。 详情请参阅“systemctl status elasticsearch.service”和“journalctl -xe”。"

解决方案:

1-sudo journalctl -f

2-sudo systemctl enable elasticsearch.service

3-sudo systemctl start elasticsearch