首頁>技術>

Elasticsearch 是一個非常強大的搜尋引擎。它目前被廣泛地使用於各個IT公司。Elasticsearch 是由 Elastic 公司建立並開源維護的。它的開原始碼位於github上。同時,Elastic 公司也擁有 Logstash 及 Kibana 開源專案。這個三個開源專案組合在一起,就形成了 ELK 軟體棧。它們三個共同形成了一個強大的生態圈。

我們一步一步地來在Mac OS上安裝Elasticsearch和Kibana。

一、檢查brew命令

如果需要確認你的本地是否有安裝Homebrew的話,請在terminal裡面執行如下命令:

which brew

執行輸出如下:

rickie@~ % which brew

/usr/local/bin/brew

如果你有安裝brew的話,它會告訴你brew的執行路徑。否則它會告訴你找不到brew命令。如果沒有brew命令的話,你可以嘗試安裝Homebrew,具體細節參考《Java程式設計師的macOS手冊》技術專欄。

二、安裝Elasticsearch

下面,告訴brew你要新增elasticsearch的tap,最後開始安裝elasticsearch。

注意,你執行以下命令的當前路徑無所謂,因為brew會把elasticsearch裝到一個預設的路徑。

告訴brew你要新增elastic的安裝源:

brew tap elastic/tap

開始安裝elasticsearch:

brew install elastic/tap/elasticsearch-full

安裝完後,上面的截圖顯示把elasticsearch安裝到了哪裡。 上面的例子中,資料被存放至/usr/local/var/lib/elasticsearch/elasticsearch_rickie/目錄中。

Elasticsearch產生的日誌會被放至 /usr/local/var/log/elasticsearch/elasticsearch_rickie.log 檔案中。

Elasticsearch用的外掛在/usr/local/var/elasticsearch/plugins/ 目錄中。

Elasticsearch的配置檔案會被放在/usr/local/etc/elasticsearch/ 目錄中。

獲取更多Elasticsearch設計細節、入門例項、原理剖析和演示專案原始碼,可訪問Elasticsearch 7.x 技術專欄。技術專欄從實戰出發,透過理論講解-環境搭建-專案案例實戰,讓初學者快速掌握Elastic技術棧。

三、修改Elasticsearch配置檔案

下面透過finder找到Elasticsearch配置檔案,根據需要修改配置檔案中的引數。

修改elasticsearch.yml 配置檔案,其中修改了2個配置項cluster.name和node.name,如圖所示。

然後修改 jvm.options 配置檔案,如圖所示,修改其中的Xms和Xmx引數。

四、啟動Elasticsearch服務

根據上圖中的提示資訊,啟動Elasticsearch服務。

To have launchd start elastic/tap/elasticsearch-full now and restart at login:

brew services start elastic/tap/elasticsearch-full

Or, if you don't want/need a background service you can just run:

elasticsearch

下面,我們透過如下命令啟動Elasticsearch服務:

brew services start elastic/tap/elasticsearch-full

執行結果如下所示。

顯示有錯誤。那麼,我們先停止Elasticsearch服務,分析一下原因。

brew services stop elasticsearch-full

執行命令,停止Elasticsearch服務。

rickie@~ % brew services stop elasticsearch-full

Stopping `elasticsearch-full`... (might take a while)

==> Successfully stopped `elasticsearch-full` (label: homebrew.mxcl.elasticsearch-full)

rickie@~ % brew services

Name Status User Plist

elasticsearch-full stopped

kafka stopped

mysql stopped

zookeeper stopped

詳細異常資訊如下所示:

java.lang.IllegalStateException: failed to obtain node locks, tried [[/usr/local/var/lib/elasticsearch]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?

at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:302)

at org.elasticsearch.node.Node.<init>(Node.java:362)

at org.elasticsearch.node.Node.<init>(Node.java:289)

at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:227)

at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:227)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393)

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)

at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)

at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)

at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)

at org.elasticsearch.cli.Command.main(Command.java:90)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)

For complete error details, refer to the log at /usr/local/var/log/elasticsearch/elasticsearch.log

上述異常可以簡單理解為:獲取節點鎖失敗。解決思路如下:

查詢 elasticsearch 程序:

ps aux | grep elastic

kill掉 elasticsearch 程序:

kill -9 程序號

重新啟動es:

./bin/elasticsearch

但是,如果沒有發現 elasticsearch 程序,則可能是其他原因造成的。

重新啟動Elasticsearch服務,檢視elasticsearch程序:

ps -ef | grep elasticsearch

現在可以訪問本機的9200埠,http://localhost:9200 檢查Elasticsearch服務是否工作正常。

如圖所示,顯示Elasticsearch 服務正常。

如果覺得每次啟動Elasticsearch 服務,都需要執行 elasticsearch 命令比較麻煩,可以執行如下命令:

brew services start elasticsearch-full

這樣就可以啟動elasticsearch 後臺服務了。

17
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Python-02-環境搭建