由于用的是mac本, 是以索性逃課 用brew裝了es。 (版本是6.8.*), 7還沒有更新上來。 當然用docker會好一些。
1. 找到安裝位址和配置檔案路徑
1.1 安裝位址
brew預設安裝目錄是/usr/local/Cellar
也可以利用指令 檢視具體應用的安裝位址
brew list elasticsearch
結果:
1.2 配置檔案位址檢視:
brew info elasticsearch
該目錄有如下幾個檔案(由于字尾不是常用的 是以都是 普通檔案(-)類型
- elasticsearch.keystore 是一個可執行檔案, 主要用來搞一些安全類 認證類的配置。
- jvm.options 主要是設定堆大小、gc類的配置, 畢竟底層的luence是java寫的, 也可以在啟動時候通過添加-Xmx -Xms參數配置, 後期還可以動态請求接口。 (ps: 官方推薦堆不要大于32g, 大于32g會使得jvm不在壓縮指針, 進而引發一些問題。 并且 給es的記憶體不要超過該機器的一半(luence也需要記憶體的), 滿足以上兩個條件的情況下 越大越好。。 畢竟es的速度靠的是記憶體 記憶體過小的話 沒準還不如直接查資料庫來的快)
- log4j2.properties 一看就知道是日志相關配置
- elasticsearch.yml 重點項目, elastic自己的配置, 也是主要打叫道的檔案
2. 配置檔案
僞叢集 那麼理論上至少是3台(2台也行。。不過2台的容錯率和3台是一樣的。。 涉及到主從選舉之類的知識)
配置檔案隻列出了基礎的比較重要的項目 ( 還有其他配置 比如配置分片數量index.number_of_shards, 索引備份分片數量index.number_of_replicas等等。。)
node.name: {node-name} # 節點名稱
node.master: true # 隻有為true 才能被選舉為master
node.data: true # 是否存儲資料
http.port: 9200 # 對外提供的端口
transport.tcp.port: 9300 # 叢集交流的端口 (類似于redis 端口号+1w的總線通信端口)
# 掃描的位址(帶端口, 預設是9200)
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
# 組成的master數
discovery.zen.minimum_master_nodes: 1
# 叢集名稱 -- 主從務必要保證一緻
cluster.name: elasticsearch_icymoon
# 本地最多啟動的node數
node.max_local_storage_nodes: 3
3.啟動僞叢集
- 之前在查資料的時候 看到許多說 複制一個配置檔案然後啟動的時候加 -Epath.config=…的, 我個人這個版本是不支援的, 會報錯(報unknown path.config之類的, 說明這個版本不支援path.config這個配置)。 導緻踩了許多坑。 最後還是手動搞的參數指令。
- 開啟master node:
/usr/local/Cellar/elasticsearch/6.8.4/bin/elasticsearch
或者 -E 自定義參數配置
/usr/local/Cellar/elasticsearch/6.8.4/bin/elasticsearch -E node.name=master -E cluster.name=elasticsearch_icymoon -E path.data=/usr/local/var/lib/elasticsearch/ -E path.logs=/usr/local/var/log/elasticsearch/ -E http.port=9200 -E transport.tcp.port=9300 -E node.master=true -E node.max_local_storage_nodes=3
- 開啟slave-node:
/usr/local/Cellar/elasticsearch/6.8.4/bin/elasticsearch -E node.name=slave-1 -E cluster.name=elasticsearch_icymoon -E path.data=/usr/local/var/lib/elasticsearch/ -E path.logs=/usr/local/var/log/elasticsearch/ -E http.port=9201 -E transport.tcp.port=9301 -E node.master=false -E discovery.zen.ping.unicast.hosts=127.0.0.1:9300,127.0.0.1:9301,127.0.0.1:9302
開啟第二個salve。。省略
4. 檢視叢集狀态
我自己的http.port的端口配置的9200(預設也是9200), 是以直接通路就好了.
輸入位址
http://localhost:9200/_cluster/health?level=indices
看到status : 為 green 說明就ok了。 可以愉快的進行玩耍了。