Linux环境下安装Elasticsearch
1、下载安装相关软件包
# 1、在home目录下创建elasticsearch文件夹
mkdir -p /home/elasticsearch
# 2、切换到目录/home/elasticsearch
cd /home/elasticsearch
# 3、安装下载工具和认证工具
yum install wget
yum install perl-Digest-SHA
# 4、下载程序包
## elasticsearch 安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz
## elasticsearch 校验文件
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz.sha512
# 5、解压安装包和认证程序包
shasum -a 512 -c elasticsearch-7.13.2-linux-x86_64.tar.gz.sha512
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz
2、创建ES启动用户
由于不能直接使用root用户启动Elasticsearch,需要单独创建一个新用户。
# 1、创建操作Elasticsearch的用户组
groupadd esgroup
# 2、创建操作Elasticsearch的用户
useradd esuser -g esgroup
# 3、设置操作Elasticsearch用户的密码
passwd esuser
espasswd
# 4、给操作Elasticsearch的用户设置相关目录的操作权限
cd /home/elasticsearch
chown -R esuser:esgroup elasticsearch-7.13.2
3、修改系统配置,满足ES的必须条件
# 1、修改limits配置文件进行系统配置
vim /etc/security/limits.conf
# 在limits.conf配置文件的最下面新增以下4行代码
nofile 65536
memlock unlimited
esuser hard nofile 65536
esuser soft nofile 65536
4、修改与使用ES相关的系统配置,在启动ES
# 切换用户,输入密码:espasswd
su esuser
# 进入启动目录
cd /home/elasticsearch/elasticsearch-7.13.2
# 查看当前程序的相关目录
ls
# 修改相关的系统配置
sysctl -w vm.max_map_count=262114
# 修改系统限制
vim config/elasticsearch.yml
# 在当前配置文件的最下面添加以下配置
cluster.name:elasticsearch
node.name:es-node0
http.port=9200
network.host:0.0.0.0
cluster.initial_master_node:["es-node0"]
# 启动elasticsearch
./bin/elasticsearch
启动日志
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U9w1eoWM-1678355293492)(/Users/zhaoxianwang/Library/Application Support/typora-user-images/image-20230224142819430.png)]
5、启动ES,验证
在宿主机终端输入:curl http:localhost:9200
如输出一下内容,表示启动成功。
[esuser@db root]$ curl http://localhost:9200
{
"name" : "es-node1",
"cluster_name" : "my-elasticsearch",
"cluster_uuid" : "AEHRJfFiTmmSrwTIomdSbg",
"version" : {
"number" : "7.13.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "4d960a0733be83dd2543ca018aa4ddc42e956800",
"build_date" : "2021-06-10T21:01:55.251515791Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sgl5plKA-1678355293493)(/Users/zhaoxianwang/Library/Application Support/typora-user-images/image-20230226185331599.png)]
6、elasticsearch.yml配置说明
属性名 | 说明 |
---|---|
cluster.name | 配置es集群的名称,默认值:elasticsearch,建议修改 |
node.name | es节点名称,默认随机指定一个名称,建议修改 |
path.conf | 设置配置文件的路径,默认存储路径为es根目录下的config文件夹 |
path.data | 设置索引数据的存储路径,默认存储路径为es根目录下的data文件夹,可以设置多个存储路径,以逗号隔开。 |
path.logs | 设置日志文件的存储路径,默认存储路径为es根目录下的logs文件夹 |
boostrap.memory_lock | 设置为true,表示es使用的内存不会进行交换操作,否则反之。 |
network.host | 设置bind_host和publish_host,设置为0.0.0.0表示允许外网访问 |
http.port | 设置对外服务的http端口,默认为9200 |
transport.tcp.port | 集群节点之间的通信端口,默认为9300 |
discovery.zen.ping.timeout | 设置es自动发现节点连接超时的时间,默认为3秒,可以根据网络延迟情况进行设置 |
在elasticsearch根目录下的config文件夹中的jvm.options文件,修改两个参数,修改之后重启即可。
# 最大内存
-Xms4g
# 最小内存
-Xmx4g
ERROR: [1] bootstrap checks failed
- 关于报错:[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决办法:
vim /etc/security/limits.conf
添加
- soft nofile 65536
- hard nofile 65536
来回切换下用户,使之生效;
-
关于报错:[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:
vim /etc/sysctl.conf
添加:
vm.max_map_count=262144
保存后,执行:
sysctl -p
重新启动,成功。
针对第三个问题:system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
出现错误的原因:是因为centos6.x操作系统不支持SecComp,而elasticsearch 5.5.2默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
在elasticsearch.yml中添加配置项:bootstrap.system_call_filter为false:
1
2
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
针对第四个问题:max number of threads [1024] for user [wh] likely too low, increase to at least [2048]
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
- soft nproc 1024
#修改为
- soft nproc 2048