本文內容腦圖如下:
文章共 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參數
- 瀏覽器訪問:http://ip:9200/ 查看啓動效果
- 命令行查看集羣信息
- 利用可視化工具 dejavu查看集羣信息
關於 Elasticsearch集羣可視化管理工具的上手,可以參考我的前文:《一文上手 Elasticsearch常用可視化管理工具》
- 接下來插入兩條數據
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集羣,若發現如下內容,這說明插件安裝成功:
怎麼樣,很簡單吧,就是一個解壓放置的過程嘛!
後 記
由於能力有限,若有錯誤或者不當之處,還請大家批評指正,一起學習交流!
- My Personal Blog:CodeSheep 程序羊
- 我的半年技術博客之路