Installing Elasticsearch on OSX Mavericks

ElasticsearchOsx Mavericks

Elasticsearch Problem Overview


I'm trying to install Elasticsearch 1.1.0 on OSX Mavericks but i got the following errors when i'm trying to start:

:> ./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)

Also when i'm executing the same command with -v arg, i got this error:

:> ./elasticsearch -v
Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_36
at org.elasticsearch.Version.<clinit>(Version.java:42)

Here's my environment:

Java version

>: 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)

Instalation path (downloaded .tar.gz archive from elasticsearch download page and extracted here):

/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

UPDATE

i finally make it working, unfortunally not sure how because i tried a lot of changes :). But here's a list of changes i made that can help:

~/Library/Caches

/Library/Caches

  • i removed CLASSPATH env var.

  • ES_PATH and ES_HOME env vars are not set either, but i think this is not so important.

Note: now it's working also if i'm installing with brew.

Thanks.

Elasticsearch Solutions


Solution 1 - Elasticsearch

You should really consider using brew. It's a great tool that will take care of dependencies, version control and much more.

To install Elasticsearch using brew, simply:

brew update
brew install elasticsearch

Boom! Done.

After that follow Elasticsearch instructions :

  1. To have launchd start Elasticsearch at login:

     ln -sfv /usr/local/opt/elasticsearch/*.plist ~/Library/LaunchAgents
    
  2. Then to load Elasticsearch now:

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

    Or, if you don't want/need launchctl, you can just run:

     elasticsearch
    

Solution 2 - Elasticsearch

As there are not very good instructions for actually "installing" it onto a Mac:

Short Version:

  1. Install Java (prefer latest supported release)
  2. Set JAVA_HOME environment variable.
  3. Download Elasticsearch version (tar or zip).
  4. Extract Elasticsearch from the downloaded file.
  5. Run bin/elasticsearch from the extracted directory.

Long version:

  1. Download Java
  • Only need the JRE if you will not be writing code on the same machine.

  • I assume that you are getting the latest JDK, which is currently JDK 8 (as you appear to have, and I have installed working on my machine).

  1. Download and extract Elasticsearch and extract it into some directory.

  2. For example: mkdir -p ~/dev/elasticsearch

  3. Optionally move the downloaded file to there:

    mv Downloads/elasticsearch* ~/dev/elasticsearch

  4. Extract the downloaded file:

    cd ~/dev/elasticsearch (if you moved it in step 2)

    • If it's the zip, then unzip elasticsearch-1.1.0.zip (or if you don't want to cd into the directory, then just run unzip elasticsearch-1.1.0.zip -d ~/dev/elasticsearch)

    • If it's the tar, then tar -xvf elasticsearch-1.1.0.tar.gz (or if you don't want to cd into the directory, then just run tar -xvf elasticsearch-1.1.0.tar.gz -C ~/dev/elasticsearch)

  5. Cleanup (if you want) by removing the downloaded file:

    rm elasticsearch-1.1.0.*

  6. Open your .bash_profile file for your bash profile settings:

    vi ~/.bash_profile

  7. In the file, export your environment variable(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

    • Close and re-open your Terminal OR

    • Run source ~/.bash_profile to update the environment variables

  8. Run Elasticsearch:

    elasticsearch

    • The more traditional way to run it is to do pretty much all of the above, but not add $ES_HOME/bin to the PATH. Then, just go to ES_PATH (cd $ES_PATH, then bin/elasticsearch) or run $ES_PATH/bin/elasticsearch.

Note: Do not setup your CLASSPATH without a very good reason. The scripts will do that for you.

Solution 3 - Elasticsearch

  1. You should try to using brew with last update:

     brew update
    
  2. And install Cask java:

     brew cask install java
    
  3. After that you can install elasticsearch:

     brew install elasticsearch
    
  4. And to have launched start elasticsearch now use:

     brew services start elasticsearch
    

    Or you can just run:

     elasticsearch
    

Solution 4 - Elasticsearch

To update ElasticSearch, just run brew upgrade elasticsearch

Solution 5 - Elasticsearch

Update your java

brew update
brew cask install java

Install it with homebrew

brew install elasticsearch

Solution 6 - Elasticsearch

install gpg && install java or 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

if error "Job for elasticsearch.service failed because a timeout was exceeded. See "systemctl status elasticsearch.service" and "journalctl -xe" for details."

solution:

1-sudo journalctl -f

2-sudo systemctl enable elasticsearch.service

3-sudo systemctl start elasticsearch

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCatalin M.View Question on Stackoverflow
Solution 1 - ElasticsearchPierre-Louis GottfroisView Answer on Stackoverflow
Solution 2 - ElasticsearchpickypgView Answer on Stackoverflow
Solution 3 - ElasticsearchAlexShView Answer on Stackoverflow
Solution 4 - ElasticsearchnetwireView Answer on Stackoverflow
Solution 5 - ElasticsearchalytvynovView Answer on Stackoverflow
Solution 6 - ElasticsearchNetwonsView Answer on Stackoverflow