在linux上安裝elasticsearch簡稱ES 簡單介紹安裝步驟


1、簡介

Elasticsearch 是一個分布式可擴展的實時搜索和分析引擎,一個建立在全文搜索引擎 Apache Lucene(TM) 基礎上的搜索引擎.當然 Elasticsearch 並不僅僅是 Lucene 那么簡單,它不僅包括了全文搜索功能,還可以進行以下工作:

  • 分布式實時文件存儲,並將每一個字段都編入索引,使其可以被搜索。
  • 實時分析的分布式搜索引擎。
  • 可以擴展到上百台服務器,處理PB級別的結構化或非結構化數據
像天貓、京東這樣的商城,用戶訪問商城的首頁,一般都會直接搜索來尋找自己想要購買的商品。而商品的數量非常多,而且分類繁雜。
如果能正確的顯示出用戶想要的商品,並進行合理的過濾,盡快促成交易,是搜索系統要研究的核心。
面對這樣復雜的搜索業務和數據量,使用傳統數據庫搜索就顯得力不從心,一般我們都會使用全文檢索技術,比如Solr,Elasticsearch。

Elastic官網:https://www.elastic.co/cn/

Elastic有一條完整的產品線及解決方案:Elasticsearch、Kibana、Logstash等,前面說的三個就是大家常說的ELK技術棧。

Elasticsearch(官網:https://www.elastic.co/cn/products/elasticsearch )是Elastic Stack 的核心技術。詳細介紹參考官網

Elasticsearch具備以下特點:

  • 分布式,無需人工搭建集群(solr就需要人為配置,使用Zookeeper作為注冊中心)
  • Restful風格,一切API都遵循Rest原則,容易上手近實時搜索,數據更新在Elasticsearch中幾乎是完全同步的。

2、安裝

為了模擬真實場景,我們將在linux下安裝Elasticsearch。 虛擬機(需要JDK1.8以上)

2.1:先新建一個用戶(出於安全考慮,elasticsearch默認不允許以root賬號運行。)

創建用戶:useradd esuser
設置密碼:passwd esuser

2.2:下載安裝包

官網下載,選擇linux版本:https://www.elastic.co/cn/products/elasticsearch

選擇亦可下載,選擇linux版本

 

 

2.3:上傳安裝包並解壓

新建文件夾:mkdir es
我們將安裝包上傳到:/home/es目錄

解壓:tar -zxvf elasticsearch-7.3.2-linux-x86_64.tar.gz 
目錄重命名:mv elasticsearch-7.3.2 elasticsearch

完成后,查看下目錄結構:

 

 

 

 2.4:修改配置文件

cd config

需要修改的配置文件有兩個:

Elasticsearch基於Lucene的,而Lucene底層是java實現,因此我們需要配置jvm參數。編輯jvm.options

vi jvm.options

修改默認配置:-Xms1g    -Xmx1g為

 編輯elasticsearch.yml修改數據和日志目錄

vi elasticsearch.yml

node.name: node-1 #配置當前es節點名稱(默認是被注釋的,並且默認有一個節點名)
cluster.name: my-application #默認是被注釋的,並且默認有一個集群名

path.data: /home/es/data # 數據目錄位置
path.logs: /home/es/logs # 日志目錄位置
network.host: 0.0.0.0 #綁定的ip:默認只允許本機訪問,修改為0.0.0.0后則可以遠程訪問
cluster.initial_master_nodes: ["node-1", "node-2"] #默認是被注釋的 設置master節點列表 用逗號分隔

 進入es的根目錄,然后創建logs data

mkdir data
mkdir logs

elasticsearch.yml的其它可配置信息:

屬性名 說明
cluster.name 配置elasticsearch的集群名稱,默認是elasticsearch。建議修改成一個有意義的名稱。
node.name 節點名,es會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理
path.conf 設置配置文件的存儲路徑,tar或zip包安裝默認在es根目錄下的config文件夾,rpm安裝默認在/etc/ elasticsearch
path.data 設置索引數據的存儲路徑,默認是es根目錄下的data文件夾,可以設置多個存儲路徑,用逗號隔開
path.logs 設置日志文件的存儲路徑,默認是es根目錄下的logs文件夾
path.plugins 設置插件的存放路徑,默認是es根目錄下的plugins文件夾
bootstrap.memory_lock 設置為true可以鎖住ES使用的內存,避免內存進行swap
network.host 設置bind_host和publish_host,設置為0.0.0.0允許外網訪問
http.port 設置對外服務的http端口,默認為9200。
transport.tcp.port 集群結點之間通信端口
discovery.zen.ping.timeout 設置ES自動發現節點連接超時的時間,默認為3秒,如果網絡延遲高可設置大些
discovery.zen.minimum_master_nodes 主結點數量的最少值 ,此值的公式為:(master_eligible_nodes / 2) + 1 ,比如:有3個符合要求的主結點,那么這里要設置為2

2.5:修改/etc/security/limits.conf文件 增加配置

vi /etc/security/limits.conf 

在文件最后,增加如下配置:

* soft nofile 65536
* hard nofile 65536

 

 

 在/etc/sysctl.conf文件最后添加一行 vm.max_map_count=655360 添加完畢之后,執行命令: sysctl -p

vi /etc/sysctl.conf
 sysctl -p

 

2.6:啟動

先將es文件夾下的所有目錄的所有權限迭代給esuser用戶

chgrp -R esuser ./es
chown -R esuser ./es
chmod 777 es

 

 

 

 

 

 啟動:

先切換到esuser用戶啟動

su esuser

./bin/elasticsearch

可以看到綁定了兩個端口:

  • 9300:集群節點間通訊接口

  • 9200:客戶端訪問接口

 

 我們在瀏覽器中訪問

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM