安裝步驟如下:
**1. 下載Linux版本的Elasticsearch**
下載地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

**2. 上傳到Linux并解壓**
```shell
-- 解壓
# tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/install
-- 建立軟鏈接
# ln -s elasticsearch-7.8.0/ es
```
**3. 修改配置文件**
```shell
(1)修改 %ES_HOME%/config/elasticsearch.yml
# vim elasticsearch.yml
cluster.name: elasticsearch
node.name: node-1
--自定義數據存儲的目錄
path.data: /opt/install/es/data
--自定義日志存儲的目錄
path.logs: /opt/install/es/logs
--讓任何人都可以訪問(當然在實際開發中這樣做是不安全的)
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
(2)修改 /etc/security/limits.conf
# vim /etc/security/limits.conf
--在文件末尾中增加下面內容
--每個進程可以打開的文件數的限制
es soft nofile 65536
es hard nofile 65536
(3)修改 /etc/security/limits.d/20-nproc.conf
# vim /etc/security/limits.d/20-nproc.conf
--在文件末尾中增加下面內容
--每個進程可以打開的文件數的限制
es soft nofile 65536
es hard nofile 65536
--操作系統級別對每個用戶創建的進程數的限制
--注:* 代表 Linux 所有用戶名稱
* hard nproc 4096
(4)修改/etc/sysctl.conf
# vim /etc/sysctl.conf
--在文件中增加下面內容
--一個進程可以擁有的 VMA(虛擬內存區域)的數量,默認值為 65536
vm.max_map_count=655360
(5)重新加載
# sysctl -p
```
**4. 創建非root用戶**
因為安全性問題,Elasticsearch不允許在root用戶下運行,需要創建一個新用戶名。
```shell
--新增es用戶
# useradd es
--為es用戶設置密碼
# passwd es
--將es文件夾所有者設置為es用戶
# chown -R es:es /opt/install/es/
```
**5. 開放9200端口或者關閉防火墻**
```shell
--開發9200端口
# sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT
--查看防火墻是否關閉
# firewall-cmd --state
--關閉防火墻
# systemctl stop firewalld.service
--禁止防火墻開機自啟
# systemctl disable firewalld.service
```
**6. 啟動es**
```shell
--需要切換到es用戶
# su es
# cd /opt/install/es/
--啟動方式1
# bin/elasticsearch
--啟動后看到如下9300和9200端口,基本可以確定啟動成功
publish_address {192.168.1.18:9300}, bound_addresses {[::]:9300}
publish_address {192.168.1.18:9200}, bound_addresses {[::]:9200}
--啟動方式2:后臺啟動
# bin/elasticsearch -d
```
**7. 訪問es**
訪問 http://192.168.1.18:9200/ ,ip為你自己Linux的ip地址,出現如下信息則表明安裝成功!
```json
{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "H6crEs5tTgCNqtp1WsBo6A",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
```
- Elasticsearch是什么
- 全文搜索引擎
- Elasticsearch與Solr
- 數據結構
- 安裝Elasticsearch
- Linux單機安裝
- Windows單機安裝
- 安裝Kibana
- Linux安裝
- Windows安裝
- es基本語句
- 索引操作
- 文檔操作
- 映射操作
- 高級查詢
- es-JavaAPI
- maven依賴
- 索引操作
- 文檔操作
- 高級查詢
- es集群搭建
- Linux集群搭建
- Windows集群搭建
- 核心概念
- 索引(Index)
- 類型(Type)
- 文檔(Document)
- 字段(Field)
- 映射(Mapping)
- 分片(Shards)
- 副本(Replicas)
- 分配(Allocation)
- 系統架構
- 分布式集群
- 單節點集群
- 故障轉移
- 水平擴容
- 應對故障
- 路由計算
- 分片控制
- 寫流程
- 讀流程
- 更新流程
- 多文檔操作流程
- 分片原理
- 倒排索引
- 文檔搜索
- 動態更新索引
- 近實時搜索
- 持久化變更
- 段合并
- 文檔分析
- 內置分析器
- 分析器使用場景
- 測試分析器
- 指定分析器
- 自定義分析器
- 文檔處理
- 文檔沖突
- 樂觀并發控制
- 外部系統版本控制
- es優化
- 硬件選擇
- 分片策略
- 合理設置分片數
- 推遲分片分配
- 路由選擇
- 寫入速度優化
- 批量數據提交
- 優化存儲設備
- 合理使用合并
- 減少Refresh的次數
- 加大Flush設置
- 減少副本的數量
- 內存設置
- 重要配置
- es常見問題
- 為什么要使用Elasticsearch
- master選舉流程
- 集群腦裂問題
- 索引文檔流程
- 更新和刪除文檔流程
- 搜索流程
- ES部署在Linux時的優化方法
- GC方面ES需要注意的點
- ES對大數據量的聚合實現
- 并發時保證讀寫一致性
- 字典樹
- ES的倒排索引
- Spring Data Elasticsearch
- 環境搭建
- 索引操作
- 文檔操作