elasticsearch单节点部署及内存调优(二)

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

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,否则修改配置文件重启时会报错 在这里插入图片描述

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
复制代码

2.2.swap调优

官方建议关掉swap交换分区

[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
复制代码

猜你喜欢

转载自juejin.im/post/7128761990918438926