Docker安裝elasticsearch分布式搜索

文章目錄

  • ??安裝elasticsearch
  • ??1.部署單點es
    • 🌸1.1.創建網絡
    • 🌸1.2.下載鏡像
    • 🌸1.3.運行
  • ??2.部署kibana
    • 🌸2.1.部署
    • 🌸2.2.DevTools
  • ??3.安裝IK分詞器
    • 🌸3.1.在線安裝ik插件(較慢)
    • 🌸3.2.離線安裝ik插件(推薦)
      • 🌸1)查看數據卷目錄
      • 🌸2)解壓縮分詞器安裝包
      • 🌸3)上傳到es容器的插件數據卷中
      • 🌸4)重啟容器
      • 🌸5)測試:
    • 🌸3.3 擴展詞詞典
  • ??4.部署es集群

??安裝elasticsearch

??1.部署單點es

🌸1.1.創建網絡


因為我們還需要部署kibana容器,因此需要讓es和kibana容器互聯。這里先創建一個網絡:

docker network create es-net

🌸1.2.下載鏡像


docker鏡像官網https://hub.docker.com/search?q=elasticsearch

docker pull elasticsearch:7.12.1

🌸1.3.運行


運行docker命令,部署單點es:

docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugins:/usr/share/elasticsearch/plugins \--privileged \--network es-net \-p 9200:9200 \-p 9300:9300 \
elasticsearch:7.12.1

命令解釋:

  • -e "cluster.name=es-docker-cluster":設置集群名稱
  • -e "http.host=0.0.0.0":監聽的地址,可以外網訪問
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":內存大小
  • -e "discovery.type=single-node":非集群模式
  • -v es-data:/usr/share/elasticsearch/data:掛載邏輯卷,綁定es的數據目錄
  • -v es-logs:/usr/share/elasticsearch/logs:掛載邏輯卷,綁定es的日志目錄
  • -v es-plugins:/usr/share/elasticsearch/plugins:掛載邏輯卷,綁定es的插件目錄
  • --privileged:授予邏輯卷訪問權
  • --network es-net :加入一個名為es-net的網絡中
  • -p 9200:9200:端口映射配置

??2.部署kibana


kibana可以給我們提供一個elasticsearch的可視化界面

docker pull kibana:7.12.1

🌸2.1.部署


運行docker命令,部署kibana

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601  \
kibana:7.12.1
  • --network es-net :加入一個名為es-net的網絡中,與elasticsearch在同一個網絡中
  • -e ELASTICSEARCH_HOSTS=http://es:9200":設置elasticsearch的地址,因為kibana已經與elasticsearch在一個網絡,因此可以用容器名直接訪問elasticsearch
  • -p 5601:5601:端口映射配置

kibana啟動一般比較慢,需要多等待一會,可以通過命令:

docker logs -f kibana

查看運行日志,當查看到下面的日志,說明成功:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JIy4PK1J-1692000631230)(assets/image-20210109105135812.png)]

此時,在瀏覽器輸入地址訪問:http://ip:5601,即可看到結果

🌸2.2.DevTools


kibana中提供了一個DevTools界面:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-PqoXSA15-1692000631231)(assets/image-20210506102630393.png)]

在這里插入圖片描述

這個界面中可以編寫DSL來操作elasticsearch。并且對DSL語句有自動補全功能。

??3.安裝IK分詞器


🌸3.1.在線安裝ik插件(較慢)


# 進入容器內部
docker exec -it es bash# 在線下載并安裝
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip#退出
exit
#重啟容器
docker restart es

🌸3.2.離線安裝ik插件(推薦)


🌸1)查看數據卷目錄


安裝插件需要知道elasticsearch的plugins目錄位置,而我們用了數據卷掛載,因此需要查看elasticsearch的數據卷目錄,通過下面命令查看:

docker volume inspect es-plugins

顯示結果:
在這里插入圖片描述

[{"CreatedAt": "2022-05-06T10:06:34+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/es-plugins/_data","Name": "es-plugins","Options": null,"Scope": "local"}
]

說明plugins目錄被掛載到了:/var/lib/docker/volumes/es-plugins/_data 這個目錄中。

🌸2)解壓縮分詞器安裝包


下載分詞器包: https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

重命名為ik

在這里插入圖片描述

🌸3)上傳到es容器的插件數據卷中


也就是/var/lib/docker/volumes/es-plugins/_data
在這里插入圖片描述

🌸4)重啟容器


# 4、重啟容器
docker restart es
# 查看es日志
docker logs -f es

🌸5)測試:


IK分詞器包含兩種模式:

  • ik_smart:最少切分

  • ik_max_word:最細切分

在這里插入圖片描述

GET /_analyze
{"analyzer": "ik_smart","text": "瘋狂星期四v50我"
}

結果:

{"tokens" : [{"token" : "瘋狂","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "星期四","start_offset" : 2,"end_offset" : 5,"type" : "CN_WORD","position" : 1},{"token" : "v50","start_offset" : 5,"end_offset" : 8,"type" : "LETTER","position" : 2},{"token" : "我","start_offset" : 8,"end_offset" : 9,"type" : "CN_CHAR","position" : 3}]
}

🌸3.3 擴展詞詞典


隨著互聯網的發展,“造詞運動”也越發的頻繁。出現了很多新的詞語,在原有的詞匯列表中并不存在。比如:“黑粉”,“愛坤” 等。

所以我們的詞匯也需要不斷的更新,IK分詞器提供了擴展詞匯的功能。

來試一把 , 可以看到根本識別不出來

GET /_analyze
{"analyzer": "ik_smart","text": "我們都是愛坤,不是黑粉"
}

在這里插入圖片描述
1)打開IK分詞器config目錄:
在這里插入圖片描述
2)在IKAnalyzer.cfg.xml配置文件內容添加:

停止詞字典也是一樣的我這里就不一 一舉例了

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典--><entry key="ext_dict">ext.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典  *** 添加停用詞詞典--><entry key="ext_stopwords">stopword.dic</entry>
</properties>

3)新建一個 ext.dic,可以參考config目錄下復制一個配置文件進行修改

愛坤
黑粉

4)重啟elasticsearch

docker restart es# 查看 日志
docker logs -f es
  1. 測試一下

可以看到非常完美的分詞成功
在這里插入圖片描述

??4.部署es集群


部署es集群可以直接使用docker-compose來完成,不過要求你的Linux虛擬機至少有4G的內存空間

首先編寫一個docker-compose文件,內容如下:

version: '2.2'
services:es01:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/datanetworks:- elastices03:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticvolumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

Run docker-compose to bring up the cluster:

docker-compose up

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36691.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36691.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36691.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rx.NET in Action 中文介紹 前言及序言

Rx 處理器目錄 (Catalog of Rx operators) 目標可選方式Rx 處理器(Operator)創建 Observable Creating Observables直接創建 By explicit logicCreate Defer根據范圍創建 By specificationRangeRepeatGenerateTimerInterval Return使用預設 Predefined primitivesThrow …

答疑:Arduino IDE配置其他開發板下載速度慢

基于案例&#xff1a;Linux環境Arduino IDE中配置ATOM S3 通常&#xff0c;網絡問題較多&#xff0c;可以使用一些技巧。 https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json 沒有配置&#xff0c;不支持M5Stack&#xff08;ESP32&…

HCIA靜態路由與動態路由

目錄 一、靜態路由 定義&#xff1a; 適用環境 二、動態路由 定義&#xff1a; 特點&#xff1a; 動態路由協議: 三、缺點&#xff1a; 1&#xff09;靜態路由缺點: 2&#xff09;動態路由的缺點: 四、靜態路由與動態路由的區別 靜態路由: 動態路由: 一、靜態路…

字節原來這么容易進,是面試官放水,還是公司實在是太缺人?

本人211非科班&#xff0c;之前在字節和騰訊實習過&#xff0c;這次其實沒抱著什么特別大的希望投遞&#xff0c;沒想到字節可以再給我一次機會&#xff0c;還是挺開心的。 本來以為有個機會就不錯啦&#xff01;沒想到能成功上岸&#xff0c;在這里要特別感謝幫我內推的同學&…

【Python】進階之 MySQL入門教程

文章目錄 數據庫概述Mysql概述Mysql安裝與使用Navicat安裝和使用Mysql終端指令操作Mysql和python交互訂單管理案例實現 數據庫概述 數據庫的由來 發展歷程說明人工管理階段用紙帶等進行數據的存儲文件系統階段數據存儲在文件中數據庫階段解決了文件系統問題高級數據庫階段分布式…

IDEA 設置字體大小無效

設置字體大小&#xff0c;一般都是從file>settings>editor>font>Size里設置&#xff0c;一般都有效。 但是&#xff0c;如果是更換了主體&#xff0c;則需要從主體顏色菜單那里這是&#xff0c;你看這個頁面&#xff0c;上面黃色三角也提示你了&#xff0c;要去顏色…

學習筆記整理-DOM-03-定時器

一、定時器 1. setInterval()函數 setInterval()函數可以重復調用一個函數&#xff0c;在每次調用之間具有固定的時間間隔。 setInterval(function () { // 這個函數將自動被以固定間隔時間調用 }, 2000);第一個參數是函數第二個參數是間隔時間&#xff0c;以毫秒為單位&…

SpringBoot中間件使用之EventBus、Metric、CommandLineRunner

1、EventBus 使用EventBus 事件總線的方式可以實現消息的發布/訂閱功能&#xff0c;EventBus是一個輕量級的消息服務組件&#xff0c;適用于Android和Java。 // 1.注冊事件通過 EventBus.getDefault().register(); // 2.發布事件 EventBus.getDefault().post(“事件內容”); …

深入理解spring面經

1 了解SpringMVC的處理流程嗎&#xff1f; 用戶發送請求至前端控制器DispatcherServlet。DispatcherServlet通過處理器映射器HandlerMapping找到對應的處理器。DispatcherServlet將請求提交給對應的處理器Controller。Controller處理完請求后返回ModelAndView。DispatcherServ…

面試攻略,Java 基礎面試 100 問(十三)

什么時候用 assert&#xff1f; assertion(斷言)在軟件開發中是一種常用的調試方式&#xff0c;很多開發語言中都支持這種機制。一般來說&#xff0c;assertion 用于保證程序最基本、關鍵的正確性。assertion 檢查通常在開發和測試時開啟。為了提高性能&#xff0c;在軟件發布…

支持對接鴻蒙系統的無線模塊及其常見應用介紹

近距離的無線通信得益于萬物互聯網的快速發展&#xff0c;基于集成部近距離無線連接&#xff0c;為固定和移動設備建立通信的藍牙技術也已經廣泛應用于汽車領域、工業生產及醫療領域。為協助物聯網企業終端產品能快速接入鴻蒙生態系統&#xff0c;SKYLAB聯手國產芯片廠家研發推…

找不到mfc140u.dll怎么辦?mfc140u.dll丟失怎樣修復?簡單三招搞定

最近我遇到了一個問題&#xff0c;發現我的電腦上出現了mfc140u.dll文件丟失的錯誤提示。這個錯誤導致一些應用程序無法正常運行&#xff0c;讓我感到非常困擾。經過一番研究和嘗試&#xff0c;我終于成功修復了這個問題&#xff0c;并從中總結出了一些心得。 mfc140u.dll丟失原…

財報解讀:繼續押注Disney+,迪士尼距離盈利還有多遠?

迪士尼最新一季的“答卷”&#xff0c;透露著不小的寒氣。 近日&#xff0c;迪士尼披露了2023財年第三季度&#xff08;自然年2023年Q2&#xff09;業績報告&#xff0c;營收223.3億美元&#xff0c;同比僅增長4%&#xff0c;低于市場預期的225.1億美元&#xff1b;歸母凈虧損…

【人工智能前沿弄潮】——生成式AI系列:Diffusers應用 (2) 訓練擴散模型(無條件圖像生成)

無條件圖像生成是擴散模型的一種流行應用&#xff0c;它生成的圖像看起來像用于訓練的數據集中的圖像。與文本或圖像到圖像模型不同&#xff0c;無條件圖像生成不依賴于任何文本或圖像。它只生成與其訓練數據分布相似的圖像。通常&#xff0c;通過在特定數據集上微調預訓練模型…

OpenLayers入門,OpenLayers入門文檔,OpenLayers入門手冊,OpenLayers相比其他地圖引擎有哪些優點?

專欄目錄&#xff1a; OpenLayers入門教程匯總目錄 前言 在學習OpenLayers之前&#xff0c;總是需要了解OpenLayers&#xff0c;知道OpenLayers是什么&#xff0c;OpenLayers能夠做什么&#xff0c;OpenLayers有哪些用途和特性&#xff0c;然后OpenLayers相比其他地圖引擎又有…

數學運算1

正確答案&#xff1a;F 你的答案&#xff1a;E 參考答案&#xff1a;最大排列為100 1 99 2 98 3…51 49 50 所以和為999897…1(100-50)因為是一個圈所以&#xff0c;100和50相接&#xff0c;所以等于5000 知識點&#xff1a;數學運算

MySQL 慢查詢探究分析

目錄 背景&#xff1a; mysql 整體結構&#xff1a; SQL查詢語句執行過程是怎樣的&#xff1a; 知道了mysql的整體架構&#xff0c;那么一條查詢語句是怎么被執行的呢&#xff1a; 什么是索引&#xff1a; 建立索引越多越好嗎&#xff1a;   如何發現慢查詢&#xff1…

樹結構--介紹--二叉樹遍歷的遞歸實現

目錄 樹 樹的學術名詞 樹的種類 二叉樹的遍歷 算法實現 遍歷命名 二叉樹的中序遍歷 二叉樹的后序遍歷 二叉樹的后序遍歷迭代算法 二叉樹的前序遍歷 二叉樹的前序遍歷迭代算法 樹 樹是一種非線性的數據結構&#xff0c;它是由n(n≥0)個有限節點組成一個具有層次關系…

Docker安裝 elasticsearch-head

目錄 前言安裝elasticsearch-head步驟1&#xff1a;準備1. 安裝docker2. 搜索可以使用的鏡像。3. 也可從docker hub上搜索鏡像。4. 選擇合適的redis鏡像。 步驟2&#xff1a;拉取elasticsearch-head鏡像拉取鏡像查看已拉取的鏡像 步驟3&#xff1a;創建容器創建容器方式1&#…

SpringBoot復習:(28)【前后端不分離】自定義View

一、自定義View package cn.edu.tju.view;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Comp…