elasticsearch单节点部署及内存调优(二)
【摘要】
1.elasticsearch的部署
1.1.elasticsearch的安装访问
安装方式优点缺点docker1.部署方便2.直接run就可以使用3.启动迅速1.需要有docker知识2.修改配置复...
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
注意下图这个提示是要求重新加载一下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
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
文件 | 作用 |
---|---|
/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
- 1
- 2
- 3
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这一行删掉即可
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
文章来源: jiangxl.blog.csdn.net,作者:Jiangxl~,版权归原作者所有,如需转载,请联系作者。
原文链接:jiangxl.blog.csdn.net/article/details/116976294
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)