天天看點

elasticsearch單節點部署及記憶體調優(二)

1.elasticsearch的部署

1.1.elasticsearch的安裝通路

安裝方式 優點 缺點
docker

1.部署友善

2.直接run就可以使用

3.啟動迅速

1.需要有docker知識

2.修改配置複雜

3.資料存儲需要挂載目錄

tar

1.部署靈活

2.對系統侵占性小

1需要自己寫啟動管理檔案

2.目錄需要提前規劃好

rpm

1.部署友善

2.啟動腳本安裝即用

3.存放目錄标準化

1軟體各個元件分散在不同的目錄

2.解除安裝可能不幹淨

3.預設配置需要修改

ansible

1.極其靈活

2.批量部署速度快

1.需要有ansible知識

2.提前準備好所有檔案

1.2.部署elasticsearch

1.準備Java環境
[root@elastic ~]# yum -y install java
[root@elastic ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

2.下載下傳elasticsearch rpm包
[root@elastic ~]# mkdir soft
[root@elastic ~]# cd soft
[root@elastic soft]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm
[root@elastic soft]# ll -h
-rw-r--r--. 1 root root 109M 11月 15 08:58 elasticsearch-6.6.0.rpm

3.安裝elasticsearch
[root@elastic soft]# yum -y localinstall elasticsearch-6.6.0.rpm

4.啟動elasticsearch
[root@elastic soft]# systemctl daemon-reload 
[root@elastic soft]# systemctl start elasticsearch
[root@elastic soft]# systemctl enable elasticsearch

           
注意下圖這個提示是要求重新加載一下systemctl,否則修改配置檔案重新開機時會報錯
elasticsearch單節點部署及記憶體調優(二)

1.3.驗證是否啟動elasticsearch

1.curl方式,目前隻能通過127.0.0.1通路,因為配置檔案中已經寫死
[root@elastic soft]# curl 127.0.0.1:9200
{
  "name" : "MKtLqho",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "lpRFdQbeTqyKSGph_xECfg",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "a9861f4",
    "build_date" : "2019-01-24T11:27:09.439740Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

2.檢視端口和程序
[root@elastic soft]# netstat -lnpt | grep 9200        
[root@elastic soft]# lsof -i:9200
[root@elastic soft]# ps aux | grep elastic

           

1.4.elasticsearch配置檔案介紹

[root@elastic soft]# rpm -qc elasticsearch
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/jvm.options
/etc/elasticsearch/log4j2.properties
/etc/elasticsearch/role_mapping.yml
/etc/elasticsearch/roles.yml
/etc/elasticsearch/users
/etc/elasticsearch/users_roles
/etc/init.d/elasticsearch
/etc/sysconfig/elasticsearch
/usr/lib/sysctl.d/elasticsearch.conf
/usr/lib/systemd/system/elasticsearch.service
           
檔案 作用
/etc/elasticsearch/elasticsearch.yml 主配置檔案
/etc/elasticsearch/jvm.options jvm 記憶體調優檔案
/etc/init.d/elasticsearch init啟動腳本
/etc/sysconfig/elasticsearch 環境變量相關,不需要改動
/usr/lib/sysctl.d/elasticsearch.conf 環境變量相關
/usr/lib/systemd/system/elasticsearch.service systemctl啟動腳本

2.elasticsearch調優

2.1.jvm調優

配置檔案路徑/etc/elasticsearch/jvm.options

主要修改:

​ -Xms1g //最小記憶體

​ -Xmx1g //最大記憶體

最大最小設定成一樣的

elasticsearch特别費系統記憶體,是以這個配置檔案調優是必做的,一般調優方式就是一半的系統記憶體給elasticsearch使用,但是切記不要超過30G,30G以後性能不會再提升反而會下降

有一點,假如系統記憶體就30G如何配置設定,首先給8G記憶體,等用一段時間後覺得不夠用在調整到到16G,在不夠用24G,24G以後就不要在使用了,因為要給系統留一部分記憶體

在生産環境時可以把資料拷貝到測試環境具體測試用多少記憶體比較合适

[root@elastic ~]# vim /etc/elasticsearch/jvm.options 
-Xms1g
-Xmx1g
           
[root@elastic ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        1.5G         72M        9.3M        177M         55M
Swap:          2.0G        104M        1.9G
[root@elastic ~]# swapoff -a
[root@elastic ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        1.6G         57M         16M        128M         13M
Swap:            0B          0B          0B


永久關閉方式
[root@elastic ~]# vim /etc/fstab 
/dev/mapper/centos-swap swap                    swap    defaults        0 0
将配置檔案中swap這一行删掉即可
           

3.配置elasticsearch

配置 含義
node.name: node-1 節點名稱,叢集模式的時候使用
path.data: /data/elasticsearch 資料存儲路徑
path.logs: /var/log/elasticsearch 日志存儲路徑
bootstrap.memory_lock: true 鎖定實體記憶體位址,防止es記憶體被交換出去,也就是避免es使用swap交換分區,頻繁的交換,會導緻IOPS變高,簡單來說就是鎖定實體記憶體,讓jvm配置的記憶體生效
network.host: 192.168.81.240 主機IP
http.port: 9200 端口
1.先将配置檔案備份一下
[root@elastic ~]# cd /etc/elasticsearch/
[root@elastic elasticsearch]# cp elasticsearch.yml  elasticsearch.yml.bak

2.修改預設配置
[root@elastic ~]# vim /etc/elasticsearch/elasticsearch.yml 
node.name: node-1					
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.81.210
http.port: 9200

3.建立資料路徑并授權
[root@elastic ~]# mkdir /data/elasticsearch -p
[root@elastic ~]# chown -R elasticsearch.elasticsearch /data/elasticsearch/

修改屬主的理由,因為elasticsearch是由普通使用者管理的,是以需要修改屬主
預設路徑就是這個使用者
[root@elastic ~]# ll -d /var/lib/elasticsearch/
drwxr-x---. 3 elasticsearch elasticsearch 19 11月 15 09:01 /var/lib/elasticsearch/

4.重新開機elasticsearch
[root@elastic ~]# systemctl restart elasticsearch