天天看點

elasticSearch 單機(mac)僞分布式叢集搭建

由于用的是mac本, 是以索性逃課 用brew裝了es。 (版本是6.8.*), 7還沒有更新上來。 當然用docker會好一些。

1. 找到安裝位址和配置檔案路徑

1.1 安裝位址

brew預設安裝目錄是/usr/local/Cellar

也可以利用指令 檢視具體應用的安裝位址

brew list elasticsearch
           

結果:

elasticSearch 單機(mac)僞分布式叢集搭建
1.2 配置檔案位址檢視:
brew info elasticsearch
           
elasticSearch 單機(mac)僞分布式叢集搭建

該目錄有如下幾個檔案(由于字尾不是常用的 是以都是 普通檔案(-)類型

elasticSearch 單機(mac)僞分布式叢集搭建
  • 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了。 可以愉快的進行玩耍了。

繼續閱讀