Установка 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