Linux系統:centos7下搭建ElasticSearch中間件,常用介面演示

来源:https://www.cnblogs.com/cicada-smile/archive/2019/07/08/11154558.html
-Advertisement-
Play Games

一、中間件簡介 1、基礎概念 ElasticSearch是一個基於Lucene的搜索伺服器。它提供了一個分散式多用戶能力的全文搜索引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。 2、分散式數 ...


一、中間件簡介

1、基礎概念

ElasticSearch是一個基於Lucene的搜索伺服器。它提供了一個分散式多用戶能力的全文搜索引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。

2、分散式資料庫

分散式資料庫系統通常使用較小的電腦系統,每台電腦可單獨放在一個地方,每台電腦中都可能有DBMS的一份完整拷貝副本,或者部分拷貝副本,並具有自己局部的資料庫,位於不同地點的許多電腦通過網路互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分佈的大型資料庫。

3、核心角色

1)節點和集群

cluster代表一個集群,集群中有多個節點,其中有一個為主節點,這個主節點是可以通過選舉產生的,主從節點是對於集群內部來說的。es的一個概念就是去中心化,字面上理解就是無中心節點,這是對於集群外部來說的,因為從外部來看es集群,在邏輯上是個整體。單個 Elastic 實例稱為一個節點(node)。一組節點構成一個集群(cluster)。

2)Shards分片

代表索引分片,es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分佈到不同的節點上。構成分散式搜索。分片的數量只能在索引創建前指定,並且索引創建後不能更改。

3)Document文檔
Index 裡面單條的記錄稱為 Document(文檔)。許多條 Document 構成了一個 Index。Document 使用 JSON 格式表示。

4)Index索引

Elastic 會索引所有欄位,查找數據的時候,直接查找該索引。每個 Index (即理解為資料庫名稱)的名字必須是小寫。

5)Type類型

Document 可以根據Type進行虛擬的邏輯分組,用來過濾 Document,即理解為資料庫表名稱。

二、中間件安裝

1、安裝環境和版本

Centos7
JDK1.8
elasticsearch-6.3.2

2、下載解壓

下載的路徑,當前目錄的文件夾下,也可以指定下載路徑。wget -P 目錄 網址。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip
[root@localhost roo]# mv elasticsearch-6.3.2.zip /usr/local/mysoft/
[root@localhost mysoft]# unzip elasticsearch-6.3.2.zip

3、啟動軟體

[root@localhost mysoft]# cd elasticsearch-6.3.2/
[root@localhost elasticsearch-6.3.2]# ./bin/elasticsearch

1)報錯一

org.elasticsearch.bootstrap.StartupException: 
java.lang.RuntimeException: can not run elasticsearch as root

新建用戶組和用戶

[root@localhost]# useradd esroot
[root@localhost]# passwd esroot
[root@localhost]# groupadd esgroup
[root@localhost]# usermod -g esgroup esroot

esroot用戶授權

chown esroot /usr/local/mysoft/elasticsearch-6.3.2 -R

切換到esroot用戶

[root@localhost mysoft]# su - esroot
[esroot@localhost ~]$ su #回到root用戶

2)報錯二

max file descriptors [4096] for elasticsearch process is too low, 
increase to at least [65536]

執行如下命名,該操作在Root許可權下操作。

[root@localhost roo]# vim /etc/security/limits.conf 
添加內容
* soft nofile 65536
* hard nofile 65536

切回esroot用戶
再次啟動,沒有報錯信息。

4、打開命令行測試

curl localhost:9200

[roo@localhost ~]$ curl localhost:9200
{
  "name" : "YMS44oi",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "2ZXjBnkJSjieV_k1IWMzrQ",
  "version" : {
    "number" : "6.3.2",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "053779d",
    "build_date" : "2018-07-20T05:20:23.451332Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

這樣elasticsearch-6.3.2環境搭建成功。
請求9200埠,Elastic 返回一個 JSON 對象,包含當前節點、集群、版本等信息。
按下 Ctrl + C,Elastic 就會停止運行。

5、配置外部訪問

預設情況下,Elastic 只允許本機訪問,如果需要遠程訪問,可以修改 Elastic 安裝目錄的config/elasticsearch.yml文件,去掉network.host的註釋,將它的值改成0.0.0.0,然後重新啟動 Elastic。

[esroot@localhost config]$ cd /usr/local/mysoft/elasticsearch-6.3.2/config
[esroot@localhost config]$ vim elasticsearch.yml 
network.host: 0.0.0.0

6、安裝IK中文分詞器

切換到root用戶

[root@localhost elasticsearch-6.3.2]$ ./bin/elasticsearch-plugin 
install 
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip

三、入門操作

索引創建和刪除

1、創建索引

[esroot@localhost ~]$ curl -X PUT 'localhost:9200/esindex01'
# 返回數據
{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "esindex01"
}

伺服器返回一個 JSON 對象,acknowledged:true欄位表示操作成功。

2、刪除索引

[esroot@localhost ~]$ curl -X DELETE 'localhost:9200/esindex01'
{"acknowledged":true}

acknowledged:true欄位表示操作成功。

四、源代碼地址

GitHub地址:知了一笑
https://github.com/cicadasmile
碼雲地址:知了一笑
https://gitee.com/cicadasmile



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有時候,我們需要在命令行中使用遠程的GUI程式,這樣我們就需要x11轉發的來進行訪問; Linux平臺下不需要特別的配置,假如我們要遠程的機器是centos機器,只要做如下配置即可: 之後重啟sshd服務; Linux 用戶客戶端這邊使用如下命令,進入ssh,然後打開圖形界面即可: windows ...
  • linux memcached安裝yum -y install libevent libevent-deve yum list memcached yum -y install memcached memcached -h systemctl enable memcached.service vim ...
  • 更改更新源 1)sudo vim /etc/apt/sources.list 2)sudo apt-get update 3) 鏡像源 創建桌面快捷方式 以創建pycharm快捷方式為例 1)在/usr/share/applications/目錄下常見pycharm.desktop文件 2)在文件中 ...
  • 下載Nginx-1.15.0.tar.gz源碼包 解壓nginx-1.15.0.tar.gz源碼包 進入nginx-1.15.0目錄,執行configure環境檢查腳本 發現出現一處錯誤:error: the HTTP rewrite module requires the PCRE library ...
  • 主機名修改(以主機名為config為例) 1、修改文件/etc/sysconfig/network,內容為 [root@config ~]# cat /etc/sysconfig/network # Created by anaconda NETWORKING=yes HOSTNAME=web-... ...
  • 我在多年的工程生涯中發現很多工程師碰到一個共性的問題:Linux工程師很多,甚至有很多有多年工作經驗,但是對一些關鍵概念的理解非常模糊,比如不理解CPU、記憶體資源等的真正分佈,具體的工作機制,這使得他們對很多問題的分析都摸不到方向。比如進程的調度延時是多少?Linux能否硬實時?多核下多線程如何執... ...
  • 解決方法: 刪除mysql前 先刪除一下 /var/lib/mysql 還有 /etc/mysql sudo rm /var/lib/mysql/ -R sudo rm /etc/mysql/ -R sudo apt-get autoremove mysql* --purge sudo apt-ge ...
  • [toc] 壓縮打包 壓縮打包介紹 ​ windows .rar Linux`有自己所特有的壓縮工具。 如果希望windows和Linux互相能使用的壓縮工具, 建議 格式 壓縮的好處主要有: 節省磁碟空間占用率 節省網路傳輸帶寬消耗 網路傳輸更加快捷 類型 | 格式 | 壓縮工具 | | | | ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...