Apple MacBook Pro M1, 32 GB, Ventura 13.2
Documentation based on comments in this Github Elasticsearch issue.
Install Homebrew
Install Homebrew if not yet installed.
Verify Homebrew is a recent version:
$ brew --version
Homebrew 3.6.21
Homebrew/homebrew-core (git revision c26f1c8714c; last commit 2023-02-08)
Homebrew/homebrew-cask (git revision b69d2bf867; last commit 2023-02-08)
brew tap elastic/tap
brew install elastic/tap/elasticsearch-full
brew install openjdk
Symlink OpenJDK so the system Java wrappers can find it. This information is also displayed as a Homebrew “caveat” after installing OpenJDK.
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
Edit Elasticsearch homebrew.mxcl.elasticsearch-full.plist
to use the OpenJDK:
code /opt/homebrew/Cellar/elasticsearch-full/7.17.4/homebrew.mxcl.elasticsearch-full.plist
Find the full path to OpenJDK:
/usr/libexec/java_home
Insert the following before the last closing </dict>
:
<key>EnvironmentVariables</key>
<dict>
<key>ES_JAVA_HOME</key>
<string>insert the full path from /usr/libexec/java_home here</string>
</dict>
The entire homebrew.mxcl.elasticsearch-full.plist
should look like:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>homebrew.mxcl.elasticsearch-full</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/opt/elasticsearch-full/bin/elasticsearch</string>
</array>
<key>EnvironmentVariables</key>
<dict>
</dict>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/opt/homebrew/var</string>
<key>StandardErrorPath</key>
<string>/opt/homebrew/var/log/elasticsearch.log</string>
<key>StandardOutPath</key>
<string>/opt/homebrew/var/log/elasticsearch.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>ES_JAVA_HOME</key>
<string>/opt/homebrew/Cellar/openjdk/19.0.2/libexec/openjdk.jdk/Contents/Home</string>
</dict>
</dict>
</plist>
echo "\nxpack.ml.enabled: false\n" >> /opt/homebrew/etc/elasticsearch/elasticsearch.yml
Add the ES_JAVA_HOME
environment variable by setting to ~/.zshrc:
echo "\nexport ES_JAVA_HOME=$(/usr/libexec/java_home)\n" >> ~/.zshrc
In a new shell, launch Elasticsearch:
elasticsearch
In a new shell, curl the local Elasticsearch URL:
$ curl -s http://localhost:9200
Example output:
{
"name" : "my-machine",
"cluster_name" : "elasticsearch_foo_bar",
"cluster_uuid" : "some-uuid",
"version" : {
"number" : "7.17.4",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "build-hash",
"build_date" : "2022-05-18T18:04:20.964345128Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
source ~/.zshrc
before runningelasticsearch
command