Установка Elasticsearch на OSX Mavericks

Я пытаюсь установить Elasticsearch 1.1.0 на OSX Mavericks, но у меня появились следующие ошибки, когда я пытаюсь запустить:

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

Путь инсталляции (загруженный архив .tar.gz с страницы загрузки elasticsearch и извлеченный здесь):

/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

Я, наконец, заставляю его работать, к сожалению, не уверен, потому что я пробовал много изменений:). Но вот список изменений, которые я сделал, может помочь:

~/Library/кэши

/Library/кэши

  • я удалил CLASSPATH env var.

  • ES_PATH и ES_HOME env vars тоже не установлены, но я думаю, что это не так важно.

Примечание: теперь он работает, если я устанавливаю с помощью brew.

Спасибо.

Ответ 1

Вы действительно должны рассмотреть возможность использования brew. Это отличный инструмент, который будет заботиться о зависимостях, управлении версиями и многом другом.

Чтобы установить Elasticsearch с помощью brew, просто:

brew update
brew install elasticsearch

Boom! Готово.

После этого следуйте инструкциям Elasticsearch:

  • Чтобы начать запуск Elasticsearch при входе в систему:

    ln -sfv /usr/local/opt/elasticsearch/*.plist ~/Library/LaunchAgents
    
  • Затем загрузить Elasticsearch сейчас:

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

    Или, если вам не нужен/нужен запуск, вы можете просто запустить:

    elasticsearch
    

Ответ 2

Как нет очень хороших инструкций для "установки" на Mac:

Краткая версия:

  • Установка Java (рекомендуется использовать последнюю версию)
  • Установите переменную среды JAVA_HOME.
  • Загрузите версию Elasticsearch (tar или zip).
  • Извлеките Elasticsearch из загруженного файла.
  • Запустите bin/elasticsearch из извлеченного каталога.

Длинная версия:

  • Загрузить Java

    • Вам нужна только JRE, если вы не будете писать код на той же машине.

    • Я предполагаю, что вы получаете последний JDK, который в настоящее время является JDK 8 (как вам кажется, и я установил работу на своей машине).

  • Загрузите и извлеките Elasticsearch и извлеките его в какой-нибудь каталог.

    • Например: mkdir -p ~/dev/elasticsearch
    • При необходимости переместите загруженный файл туда:

      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.*

  • Откройте файл .bash_profile для ваших настроек профиля bash:

    vi ~/.bash_profile

  • В файле экспортируйте переменную среды

    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, чтобы обновить переменные среды

  • Запуск Elasticsearch:

    elasticsearch

    • Более традиционный способ запустить его - это сделать почти все из вышеперечисленного, но не добавить $ES_HOME/bin в PATH. Затем просто перейдите к ES_PATH (cd $ES_PATH, затем bin/elasticsearch) или запустите $ES_PATH/bin/elasticsearch.

Примечание. Не устанавливайте CLASSPATH без серьезной причины. Сценарии сделают это для вас.

Ответ 3

Чтобы обновить ElasticSearch, просто запустите brew upgrade elasticsearch

Ответ 4

  • Вам следует попытаться использовать brew с последним обновлением:

    brew update
    
  • И установите Cask java:

    brew cask install java
    
  • После этого вы можете установить elasticsearch:

    brew install elasticsearch
    
  • И чтобы начать запуск elasticsearch, теперь используйте:

    brew services start elasticsearch
    

    Или вы можете просто запустить:

    elasticsearch