ElasticSearch單機多節點7.x版本

注:本文在Es7.x版本單節點能順利啓動並使用情況下進行。

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.datapath.logs分別指向各自的文件夾

    在查閱資料過程中發現很多地方都提到了這一個配置discovery.zen.ping.unicast.hosts通過查閱官方文檔發現在7.x的版本中與集羣相關的配置主要就是上面配置的cluster.initial_master_nodesdiscovery.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集羣啓動成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章