注:本文在Es7.x版本單節點能順利啓動並使用情況下進行。
準備
-
創建目錄elasticsearch-colony並賦予es用戶及用戶組權限
mkdir /usr/local/elasticsearch-colony
chown -R es:es /usr/local/elasticsearch-colony/
-
切換到es用戶
su - es
-
使用
cp file1 file2 -a
命令將Es解壓版的文件夾複製三份至之前準備的目錄中1.主節點
cp /usr/local/elasticsearch-7.5.1 /usr/local/elasticsearch-colony/elasticsearch-7.5.1-master
2.節點1
cp /usr/local/elasticsearch-7.5.1 /usr/local/elasticsearch-colony/elasticsearch-7.5.1-node1
3.節點2
cp /usr/local/elasticsearch-7.5.1 /usr/local/elasticsearch-colony/elasticsearch-7.5.1-node2
-
切換到elasticsearch-colony下使用
mkdir directory...
創建master(主節點),node-1(節點1),node-2(節點2)三個目錄並在三個目錄下分別創建data和logs文件夾mkdir -p master/data master/logs node-1/data node-1/logs node-2/data node-2/logs
1.data:存放es中的數據
2.logs:存放es的日誌
如果使用解壓版(.zip)(.tar.gz)的es,解壓之後data和logs會默認保存在$ES_HOME的子文件夾裏,如果將這些重要文件保存在默認位置,在升級到新版本的es時,很有可能將其刪除。所以在生產環境中使用時,要記得更改data和log的位置。
修改每個節點的配置文件
-
es主要有三個配置文件
1.elasticsearch.yml 用於配置Elasticsearch
2.jvm.options 用於配置Elasticsearch JVM設置
3.log4j2.properties 用於配置Elasticsearch日誌記錄
-
主要需要修改es的子目錄中config目錄下的elasticsearch.yml文件,分別修改三個節點的配置文件,下面是主節點的修改:
vi /usr/local/elasticsearch-colony/elasticsearch-7.5.1-master/config/elasticsearch.yml
相關配置如下:
1.指定集羣的名稱,如果想讓節點在同一集羣上,這個值要設爲一致
cluster.name: Avengers
Elasticsearch集羣是一組具有相同cluster.name屬性的節點,啓動es實例時,就是在啓動節點(node),當節點加入或離開羣集時,羣集會自動重新組織以在可用節點之間平均分配數據。
2.指定節點的名稱,保證節點的唯一性,這個值不能相同
node.name: ironman
3.指定節點爲主節點,默認爲true,默認集羣中第一個節點爲master,如果掛了會重新選舉master
node.master: true
4.是否允許節點存儲數據,默認爲true
node.data: true
5.指定存放data和logs的目錄
path.data: /usr/local/elasticsearch-colony/master/data
path.logs: /usr/local/elasticsearch-colony/master/logs
6.指定網關地址,指向當前設備的ip
network.host: 0.0.0.0
7.指定http訪問的端口,默認爲9200端口
http.port: 9200
默認情況下es會自動選取9200到9299之間的端口,如果啓動時9200被佔用會自動使用9201以此類推,爲了更好的管理還是手動配置一下。
8.指定tcp訪問端口,供es內部通信使用,默認爲9300端口,默認時的機制與http.port相同
transport.tcp.port: 9300
9.手動指定可以成爲 mater 的所有節點的 name 或者 ip,這些配置將會在第一次選舉中進行計算
cluster.initial_master_nodes: ["ironman"]
-
兩個從節點的修改主要列舉和主節點不同配置的地方:
相關配置如下:
1.是否爲主節點
node.master: false
2.設置集羣發現,應包含集羣中所有master節點
discovery.seed_hosts: ["127.0.0.1:9300"]
3.無需設置
cluster.initial_master_nodes
4.
http.port
,transport.tcp.port
不能重複5.
path.data
與path.logs
分別指向各自的文件夾在查閱資料過程中發現很多地方都提到了這一個配置
discovery.zen.ping.unicast.hosts
通過查閱官方文檔發現在7.x的版本中與集羣相關的配置主要就是上面配置的cluster.initial_master_nodes
與discovery.seed_hosts
。其中前者需要在所有可以成爲主節點的節點配置中配置,並且同一集羣中該配置中的列表必須相同,且列表中的節點名稱必須與node.name
配置的名稱相同。後者則是爲其他節點提供符合主節點資格的節點列表。
啓動
-
分別啓動三個es實例,在三個節點文件夾的bin目錄下
1.
./elasticsearch -d
後臺啓動2.啓動完成可以通過
ps -ef | grep elastic
命令查看進程3.通過
curl -X GET 127.0.0.1:9200/_cat/health?v
命令查看Es節點的情況若status爲green,則說明es集羣啓動成功。