1. 程式人生 > >CentOS7 上搭建多節點 Elasticsearch叢集

CentOS7 上搭建多節點 Elasticsearch叢集

Profile

本文內容腦圖如下:

本文內容腦圖

文章共 747字,閱讀大約需要 2分鐘 !


概 述

最近學 Elasticsearch,既然學之,怎麼能沒有實際的叢集來把玩呢,因此自己必須動手搭一個!

注: 本文首發於 My Personal Blog:CodeSheep·程式羊,歡迎光臨 小站


環境準備

  • 節點準備

本文準備搭建 雙節點 Elasticsearch叢集,因此這裡準備了兩臺 Linux CentOS 7.4 64bit 機器:

  • 節點1:192.168.31.8
  • 節點2:192.168.31.9
  • Elasticsearch 安裝包準備

這裡下載的是截止到當前日期的最新版:6.4.2

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz
  • 安裝目錄準備

這裡擬將 Elasticsearch安裝在 /opt/elasticsearch 目錄下:

mkdir /opt/elasticsearch
將壓縮包複製到該目錄下並解壓

Elasticsearch 叢集配置

需要修改兩個節點上的配置檔案 elasticsearch.yml

  • 節點1 配置
cluster.name: codesheep         # 叢集名稱
node.name: sheep1                 # 節點名
network.host: 192.168.31.8     # 繫結的節點1地址
network.bind_host: 0.0.0.0      # 此項不設定你試試本機可能訪問不了啊
discovery.zen.ping.unicast.hosts: ["192.168.31.8","192.168.31.9"]  # hosts列表
discovery.zen.minimum_master_nodes: 1 

## 如下配置是為了解決 Elasticsearch視覺化工具 dejavu的跨域問題!若不用視覺化工具則可省略之
http.port: 9200
http.cors.allow-origin: "http://192.168.199.76:1358"
http.cors.enabled: true
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true
  • 節點2 配置
cluster.name: codesheep         # 叢集名稱
node.name: sheep1                 # 節點名
network.host: 192.168.31.9     # 繫結的節點2地址
network.bind_host: 0.0.0.0     
discovery.zen.ping.unicast.hosts: ["192.168.31.8","192.168.31.9"]  # hosts列表
discovery.zen.minimum_master_nodes: 1 

## 如下配置是為了解決 Elasticsearch視覺化工具 dejavu的跨域問題!若不用視覺化工具則可省略之
http.port: 9200
http.cors.allow-origin: "http://192.168.199.76:1358"
http.cors.enabled: true
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true

叢集啟動前準備

  • 建立使用者及使用者組

由於 Elasticsearch不能以 root使用者啟動,因此需要新增非 root使用者:

groupadd es
useradd es -g es
chown -R es:es ./elasticsearch-6.4.2
  • 關閉防火牆
systemctl stop firewalld
systemctl disable firewalld

啟動 Elasticsearch叢集

  • 切換使用者
su es
  • 分別在 節點1和 節點2上啟動ES服務
cd bin
./elasticsearch  // 若要後臺啟動,則加-d引數

啟動後瀏覽器訪問效果

  • 命令列檢視叢集資訊

image.png

  • 利用視覺化工具 dejavu檢視叢集資訊

關於 Elasticsearch叢集視覺化管理工具的上手,可以參考我的前文:《一文上手 Elasticsearch常用視覺化管理工具》

視覺化工具dejavu檢視叢集資訊

  • 接下來插入兩條資料
curl -X PUT 'localhost:9200/accounts/person/1' -d '
{
  "user": "張三",
  "title": "工程師",
  "desc": "資料庫管理"
}' 

curl -X PUT 'localhost:9200/accounts/person/1' -d '
{
  "user": "趙四",
  "title": "設計師",
  "desc": "UI設計"
}' 
  • 檢視資料的入庫效果

資料入庫效果

OK,索引 / 型別 / 文件 一目瞭然!

若在 Elasticsearch叢集 安裝/啟動 過程 中有任何奇葩 問題/錯誤 的話,就參考我的這篇文章:《CentOS7上ElasticSearch安裝填坑記》吧,裡面的坑我都一個個填過了!


安裝IK分詞器

在 Elasticsearch的世界中,外掛是很重要的一部分,很多功能都可以通過外掛來實現,因此下面就以常用的 IK分詞器外掛 的安裝為例,來操作一下 Elasticsearch外掛的安裝

分詞技術是搜尋技術的基石,而 IK分詞器是比較經典的一個,接下來嘗試安裝一下吧

IK分詞器版本與 ES版本對應,不能搞錯,可在 這裡檢視

  • 下載 IK分詞器外掛
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.2/elasticsearch-analysis-ik-6.4.2.zip
  • 解壓 / 安裝

新建目錄 /opt/elasticsearch/elasticsearch-6.4.2/plugins/elasticsearch-analysis-ik-6.4.2

再將 zip包置於上述目錄下並解壓:

unzip elasticsearch-analysis-ik-6.4.2.zip

  • 重啟 Elasticsearch叢集

重啟 Elasticsearch叢集,若發現如下內容,這說明外掛安裝成功:

檢查IK分詞器外掛安裝是否成功

怎麼樣,很簡單吧,就是一個解壓放置的過程嘛!


後 記

由於能力有限,若有錯誤或者不當之處,還請大家批評指正,一起學習交流!