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

一、簡介

Elasticsearch 是一個分佈式可擴展的實時搜索和分析引擎,一個創建在全文搜索引擎 Apache Lucene(TM) 基礎上的搜索引擎.固然 Elasticsearch 並不只僅是 Lucene 那麼簡單,它不只包括了全文搜索功能,還能夠進行如下工做:java

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

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

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

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

Elasticsearch具有如下特色:bootstrap

  • 分佈式,無需人工搭建集羣(solr就須要人爲配置,使用Zookeeper做爲註冊中心)
  • Restful風格,一切API都遵循Rest原則,容易上手近實時搜索,數據更新在Elasticsearch中幾乎是徹底同步的。

二、安裝

爲了模擬真實場景,咱們將在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

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

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:客戶端訪問接口

 

 咱們在瀏覽器中訪問

相關文章
相關標籤/搜索