ElasticSearch 認識和安裝ES

文章目錄

  • 一、為什么學ElasticSearch?
      • 1.ElasticSearch 簡介
      • 2.ElasticSearch 與傳統數據庫的對比
      • 3.ElasticSearch 應用場景
      • 4.ElasticSearch 技術特點
      • 5.ElasticSearch 市場表現
      • 6.ElasticSearch 的發展
  • 二、認識和安裝ES
      • 1.認識 Elasticsearch(簡稱 ES)
      • 2.ElasticSearch 與 ELK Stack
      • 3.安裝 Elasticsearch(tar包)
      • 4.安裝 Kibana
      • 5.使用 Kibana 進行操作
      • 6.安裝過程中的注意事項
      • 7.總結

一、為什么學ElasticSearch?

1.ElasticSearch 簡介

  • ElasticSearch 是一個分布式、高性能的搜索引擎,廣泛應用于大數據檢索、日志分析、實時搜索等場景。
  • 與傳統數據庫相比,ElasticSearch 對于大規模數據的處理具有顯著優勢,特別是模糊查詢、分詞分析、語義理解等復雜搜索任務。



2.ElasticSearch 與傳統數據庫的對比

  • 數據庫查詢問題:使用傳統數據庫做模糊查詢時,隨著數據量增大,響應時間會顯著變慢,尤其是當數據量達到幾十萬、百萬時,響應時間甚至可能達到上百毫秒。

  • ElasticSearch 優勢:ElasticSearch 在進行類似商品搜索、代碼庫搜索、全文檢索等任務時,響應時間較短,甚至在數據量達到千萬級時仍然能夠保持較快的搜索速度。ElasticSearch 的查詢速度與數據量的關系較小,性能優秀。


3.ElasticSearch 應用場景

  • 電商商品搜索:例如黑馬商城中的商品搜索,使用數據庫進行模糊查詢時,響應時間大約為 100 毫秒,但使用 ElasticSearch 后,響應時間大幅度降低至 20 毫秒左右,即便數據量增加,搜索速度依然保持較快。
  • 代碼托管平臺(如 GitHub):GitHub 中有數十億行代碼,ElasticSearch 支持快速高效地從大量數據中檢索出相關內容,遠超過傳統數據庫的查詢能力。

  • 百度、谷歌搜索:搜索引擎能夠根據用戶輸入的關鍵字匹配相似或相關內容,而不僅僅是精確匹配。通過分詞和語義分析,ElasticSearch 能處理復雜的搜索需求。

  • 地理位置搜索:如打車軟件通過用戶的地理位置快速查找附近的車輛,ElasticSearch 提供了強大的地理坐標搜索功能,能夠實時返回附近的車輛信息。


4.ElasticSearch 技術特點

  • 開源免費:ElasticSearch 是一個完全開源且免費的搜索引擎,用戶可以在無需付費的情況下自由使用。
  • 分布式架構:支持分布式部署,具有高可用性,能夠處理海量數據。
  • 高效能:即使在數據量極大的情況下,ElasticSearch 也能夠保持較快的查詢速度,尤其適用于大規模的全文檢索、日志分析等場景。
  • 全文檢索:ElasticSearch 支持強大的全文檢索能力,能夠進行模糊匹配、語義理解、分詞分析等。


5.ElasticSearch 市場表現

  • 市場地位:ElasticSearch 連續多年穩居全球搜索引擎技術的排名第一,超越了傳統的 Solar 等搜索引擎。其強大的性能和靈活的應用,使其成為大數據處理和實時搜索的首選工具。



6.ElasticSearch 的發展

  • 從 2016 年起,ElasticSearch 逐漸超越了 Solar,成為開源搜索引擎領域的領導者。隨著開源軟件社區的不斷貢獻,ElasticSearch 的功能和性能不斷增強,保持了行業領先地位。

通過學習 ElasticSearch,能夠幫助我們應對各種大數據搜索需求,特別是在電商、社交平臺、代碼托管、日志分析等多個行業中發揮重要作用。




二、認識和安裝ES

1.認識 Elasticsearch(簡稱 ES)

1.1 Lucene:Elasticsearch 的底層技術是 Lucene,它是一個由 Apache 維護的基于 Java 的搜索引擎庫,提供了創建搜索引擎的 API 工具包。

官方網址:https://lucene.apache.org

  • 優勢:Lucene 提供了高性能的搜索引擎功能,并且易于擴展。
  • 倒排索引:Lucene 使用倒排索引技術,使得數據的搜索非常高效。

1.2 Elasticsearch(ES)

  • 起源:ES 是基于 Lucene 開發的,最初由 Shay Banon 于 2004 年創建,最初名為 Compass,后來重寫并更名為 Elasticsearch。
  • 核心特性:ES 支持分布式架構,能夠做水平擴展,支持集群部署,能夠存儲海量數據并高效搜索。
  • 開發語言:雖然 Lucene 是用 Java 寫的,ES 也采用 Java 開發,但它通過 RESTful API 提供跨語言的訪問接口,支持多種編程語言進行操作。
  • 當前版本:ES 最新版本為 8.x,但在國內的企業中,較為常用的是 6.x 和 7.x 版本,主要是因為 API 穩定性。
  • 官方網址:https://www.elastic.co/cn/




2.ElasticSearch 與 ELK Stack

  • ELK Stack
    • ELK 代表 Elasticsearch、Logstash 和 Kibana:
      • Elasticsearch:用于存儲、計算和搜索數據。
      • Logstash:用于數據抓取和處理。
      • Kibana:用于數據可視化展示。



  • 使用場景
    • 日志數據分析


    • 實時監控

    • 大規模微服務的日志管理和監控




3.安裝 Elasticsearch(tar包)

  • 安裝方式:可以通過多種方式安裝 Elasticsearch,這里采用 Docker 進行安裝。
  • 沒有tar包也可以直接拉取鏡像,詳細操作請觀看下一篇筆記
  • 將 tar 包復制到虛擬機根目錄下


  • 導入鏡像
docker load -i es.tar
docker load -i kibana.tar



  • 查看鏡像是否導入成功,導入成功建議刪除 tar 包,內存占用大
docker images


  • 刪除 tar 包
rm -rf *.tar
ll



Docker 安裝命令

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 hm-net \  # 這里是自己設置的網絡-p 9200:9200 \-p 9300:9300 \elasticsearch:7.12.1

  • 環境變量配置ES_JAVA_OPTS 用于設置內存,discovery.type=single-node 用于單機模式啟動。
  • 端口映射:9200 用于 HTTP 接口,9300 用于集群通信。


  • 查看容器運行情況
docker ps



  • 查看日志
docker logs -f es



  • 驗證安裝
    • 通過訪問 http://虛擬機 IP 地址:9200 可以確認 Elasticsearch 是否成功啟動。若返回 JSON 格式的響應信息,證明安裝成功。




4.安裝 Kibana

  • Kibana 安裝命令
docker run -d \--name kibana \-e ELASTICSEARCH_HOSTS=http://es:9200 \--netwwork=hm-net \    # 這里是自己設置的網絡-p 5601:5601 \kibana:7.12.1

  • 注意:es 和 kibana 需在一個網絡里面,如果不在一個網絡里面,按照以下步驟操作:
docker network create [網絡名]
docker network connect [網絡名] kibana
docker network connect [網絡名] es

  • 配置說明ELASTICSEARCH_HOSTS 配置為 Elasticsearch 的地址,9200 為 ES 服務端口,5601 為 Kibana 提供的 Web 服務端口。

  • 查看日志:
docker logs -f kibana



  • 驗證 Kibana 安裝
    • 通過訪問 http://虛擬機 ip 地址:5601 可以訪問 Kibana 的圖形化界面。




5.使用 Kibana 進行操作

  • 開發工具(Dev Tools):Kibana 提供了開發工具面板,允許用戶直接向 Elasticsearch 發送 HTTP 請求進行數據增刪改查等操作,而無需記住每個請求的具體路徑和參數。

    • 例如,使用 GET / 請求可以查看 Elasticsearch 的基本信息。




  • 好處
    • 簡化操作:無需手動構造復雜的請求路徑和參數。
    • 代碼提示:Kibana 提供了智能提示,幫助用戶構建請求。



6.安裝過程中的注意事項

  • Docker 鏡像
    • 鏡像大小較大,下載較慢,可以直接使用提供的鏡像文件進行導入。
    • 支持 Windows 系統的 Docker 環境,Mac 系統(尤其是 M2 芯片)需要注意鏡像兼容性問題。
  • 內存配置
    • Elasticsearch 默認使用 1GB 內存,建議根據電腦配置調整內存大小,避免占用過多資源。最低推薦內存為 512MB。




7.總結

  • 本章內容主要是介紹了 Elasticsearch 的基礎知識、它的起源以及如何安裝和配置 Elasticsearch 和 Kibana。
  • 安裝過程中使用 Docker 是一種方便快捷的方式,可以輕松啟動單機模式的 Elasticsearch 服務,并結合 Kibana 進行可視化操作。
  • 在企業生產環境中,ELK Stack 組合被廣泛用于日志管理和實時監控,幫助開發者有效地處理大規模的日志數據。

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

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

相關文章

node.js中實現token的生成與驗證

Token(令牌)是一種用于在客戶端和服務器之間安全傳輸信息的加密字符串。在Web開發中,Token常用于身份驗證和授權,確保用戶能夠安全地訪問受保護的資源。 作用與意義 身份驗證:Token可以用來驗證用戶的身份&#xff0…

第34天:安全開發-JavaEE應用反射機制攻擊鏈類對象成員變量方法構造方法

時間軸: Java反射相關類圖解: 反射: 1、什么是 Java 反射 參考: https://xz.aliyun.com/t/9117 Java 提供了一套反射 API ,該 API 由 Class 類與 java.lang.reflect 類庫組成。 該類庫包含了 Field 、 Me…

Django后端相應類設計

通用的ApiResponse類:用于生成統一的 API 響應格式。每個響應都包含以下字段(每個接口最終的返回數據格式): status_code:HTTP 狀態碼(如 200、400、500 等)message:響應的描述信息…

汽車基礎軟件AutoSAR自學攻略(三)-AutoSAR CP分層架構(2)

汽車基礎軟件AutoSAR自學攻略(三)-AutoSAR CP分層架構(2) 下面我們繼續來介紹AutoSAR CP分層架構,下面的文字和圖來自AutoSAR官網目前最新的標準R24-11的分層架構手冊。該手冊詳細講解了AutoSAR分層架構的設計,下面讓我們來一起學習一下。 Introductio…

css面試常考布局(圣杯布局、雙飛翼布局、三欄布局、兩欄布局、三角形)

兩欄布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

模糊查詢在sqlserver、dm8、mysql的編寫示例

模糊查詢要求&#xff1a;字段值以 25D 開頭&#xff0c;并以 4 位數字結尾 sqlserver&#xff1a; select * from table_name where column_name like 25D[0-9][0-9][0-9][0-9] 說明&#xff1a; 25D&#xff1a;表示字符串以 25D 開頭。 [0-9][0-9][0-9][0-9]&#xf…

SCTNet模型詳解及代碼復現

模型背景 隨著深度學習技術的發展,語義分割領域取得了顯著進展。然而,在實際應用中,特別是在實時場景下,現有模型往往面臨計算復雜度高、難以平衡精度和速度等問題。為應對這些挑戰,研究人員提出了SCTNet模型,旨在解決實時語義分割問題,同時兼顧精度和效率。該模型融合…

Python的循環

Python的循環 Python的循環有兩種&#xff0c;分別是for…in循環和while循環。 for…in 循環 假設我們要循環輸出一個列表里的元素&#xff1a; names [張三,李四,王五] for name in names:print(name)執行這段代碼后&#xff0c;會依次打印names的每一個元素&#xff1a;…

【0387】Postgres內核 streaming replication(流復制)工作原理

1. Postgres 流復制 本文是關于設置 PostgreSQL 版本流復制的簡明指南,力求盡可能不受平臺限制。故而,其假定您擁有運用操作系統工具編輯文件及安裝/配置軟件包的扎實知識。并且,還假定您熟悉 PostgreSQL 的配置情況。 PostgreSQL 內置的流復制為您的數據庫構建了一個服務…

網絡攻擊行為可視化分析系統【數據分析 + 可視化】

一、系統背景 隨著信息技術的快速發展&#xff0c;網絡已成為現代社會不可或缺的一部分。然而&#xff0c;與此同時&#xff0c;網絡攻擊手段也日益多樣化和復雜化&#xff0c;給企業和個人的信息安全帶來了極大的威脅。傳統的網絡攻擊分析方法往往依賴于人工分析和處理大量的…

利用obs studio制作(人像+屏幕)錄制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能強大的開源軟件&#xff0c;它使用戶能夠直接從電腦錄制視頻和直播內容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平臺。它在需要直播或錄制屏幕活動的游戲玩家、YouTube 用戶和專業人士…

蠕蟲病毒會給服務器造成哪些危害?

蠕蟲病毒是一種獨立的惡意計算機程序&#xff0c;可以進行自我復制來傳播到其他的計算機系統當中&#xff0c;蠕蟲病毒和傳統病毒之間是有著區別的&#xff0c;蠕蟲病毒不需要宿主程序就能夠自行傳播&#xff0c;主要是利用各種操作系統漏洞進行攻擊的。 接下來小編就介紹一下蠕…

C# GDI+的DrawString無法繪制Tab鍵的現象

【啰嗦2句】 現在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以這個問題估計也冷門。沒關系&#xff0c;分享給特定需要的人也不錯。 【問題現象】 工作中開發了一個報告編輯器&#xff0c;實現圖文排版等功能&#xff0c;用著沒什么問題&#xff0c;直到有一天…

互斥信號量的等待與通知

目錄 等待互斥信號量 信號量未被占用 信號量被自己占用 信號量被高優先級任務占用 信號量被低優先級任務占用 釋放互斥信號量 未發生優先級繼承 發生優先級繼承 等待互斥信號量 信號量未被占用 標記為已經被占用鎖定計數1 信號量被自己占用 鎖定計數1 信號量被高優先級任務占用…

夯實前端基礎之HTML篇

知識點概覽 HTML部分 1. DOM和BOM有什么區別&#xff1f; DOM&#xff08;Document Object Model&#xff09; 當網頁被加載時&#xff0c;瀏覽器會創建頁面的對象文檔模型&#xff0c;HTML DOM 模型被結構化為對象樹 用途&#xff1a; 主要用于網頁內容的動態修改和交互&…

Qt資源文件以及文件加密

1、Qt資源文件 在Qt中&#xff0c;資源文件&#xff08;.qrc&#xff09;是一種方便的方式來管理應用程序中的多媒體文件&#xff0c;如圖像、圖標和其他資源。這些文件使用XML格式定義&#xff0c;并在編譯時嵌入到應用程序的二進制文件中。 創建資源文件的步驟如下&#xff…

深入詳解人工智能自然語言處理(NLP)之文本處理:分詞、詞性標注、命名實體識別

【自然語言處理】——深入詳解人工智能自然語言處理&#xff08;NLP&#xff09;之文本處理&#xff1a;分詞、詞性標注、命名實體識別 自然語言處理&#xff08;Natural Language Processing&#xff0c;簡稱NLP&#xff09;是人工智能的一個重要分支&#xff0c;涉及如何使計…

SD ComfyUI工作流 老照片修復上色

文章目錄 老照片修復上色SD模型Node節點工作流程開發與應用效果展示老照片修復上色 該工作流專門設計用于老照片的修復和上色,通過一系列高級的圖像處理技術,包括深度圖預處理、面部修復、上色和圖像放大等步驟,來恢復老照片的質量并增加色彩。首先,工作流加載老照片并進行…

后端技術選型 sa-token校驗學習 下 結合項目學習 前后端登錄

目錄 后端設置 Controller 層 Service 層 后端返回 Token 給前端 1. 用戶提交登錄請求 2. 后端驗證用戶身份 3. 返回 Token 4. 前端保存 Token 前端存儲 1. 前端向后端發起請求 2. 前端存儲一下 Token 3.管理用戶認證的 token 的 工具 4. 在 Service 層進行設置 H…

dtdug匯編指令練習

r 通用寄存器 m 代表內存 imm 代表立即數 r8 代表8位通用寄存器 m8 代表8位內存 imm8 代表8位立即數 mov指令練習 MOV 的語法: mov 目標操作數&#xff0c;源操作數 作用:拷貝源操作數到目標操作數 1、源操作數可以是立即數、通用寄存器、段寄存器、或者內存單元. 2、目標操作數…