ElasticSearch搭建文档
作者:鱼仔
博客首页: https://codeease.top
公众号:Java鱼仔
# 下载地址
https://elasticsearch.cn/download/ (opens new window)
本次安装的版本是7.6.2
# 单机版
# 安装与启动
将下载的文件放入想要安装的目录中,我放到的是/beeb/db/es下
tar -xvf elasticsearch-7.6.2-linux-x86_64.tar.gz
mv elasticsearch-7.6.2 elasticsearch
1
2
3
2
3
每个目录对应的作用:
- bin目录存放各种启动文件
- config目录存放配置文件
- lib目录存放相关Jar包
- logs目录存放日志文件
- modules存放功能模块
- plugins存放各类插件
最简单的方式启动ES
./bin/elasticsearch
1
启动成功后在新的链接窗口使用curl命令,返回如下结果表示安装完成
[root@localhost ~]# curl 127.0.0.1:9200
{
"name" : "localhost.localdomain",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "RtEA_S2XSb64Qc8Sgy6QRg",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
后台启动命令
./bin/elasticsearch -d
1
# 可能会遇到的问题
# root账号无法启动问题
linux中ES的启动可能会遇到一些问题,如果你在Root权限下启动,你就会遇到第一个报错:
can not run elasticsearch as root
1
解决办法:因为ES不能在Root权限下使用,因此需要建一个新的用户:
adduser elastic
passwd elastic
#输两遍密码
#elastic:elastic 后一个elastic是密码
chown -R elastic:elastic /usr/local/elasticsearch
su elastic
./elasticsearch
1
2
3
4
5
6
7
2
3
4
5
6
7
# curl可以,ip:端口访问不行
1、首先通过ping和telnet查看网络是否通,不通的情况先关防火墙
2、修改config/elasticsearch.yml
network.host: 192.168.78.128 #改成服务器ip
cluster.initial_master_nodes: ["node-1"] #添加初始主节点
1
2
2
3、重新启动,浏览器上也可访问ip:端口即为成功
# max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决办法:(root账号)
其中bigdata是要启动es的那个账号
vim /etc/security/limits.conf
#添加下面配置
bigdata soft nofile 65536
bigdata hard nofile 65536
1
2
3
4
2
3
4
接着重新登陆bigdata账号
# max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:(root账号)
vim /etc/sysctl.conf
vm.max_map_count = 262144
1
2
2
上面的操作将使得变更永久化
同时运行:
sysctl -w vm.max_map_count=262144
1
改变内核的当前状态。
# 集群版
首先采用单机版部署方式给每一台机器部署ES
部署完成之后,配置 elasticsearch.yml 配置文件
vim config/elasticsearch.yml
1
#集群名字
cluster.name: my-es
#节点名字,三台机器分别为 node-1、node-2、node-3
node.name: node-2
#IP地址,改成对应的服务器地址
network.host: 192.168.78.130
#端口号
http.port: 9200
transport.tcp.port: 9300
#是否有资格当主节点
node.master: true
#是否存储数据
node.data: true
#节点发现,所有节点的ip地址
discovery.seed_hosts: ["192.168.78.128:9300", "192.168.78.130:9300","192.168.78.131:9300"]
#选举master
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
# 数据和日志地址
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
三台服务器需要修改的配置为 node.name、network.host
最后逐一启动三台机器,日志不报错之后,在Kibana通过命令查看集群
GET _cat/nodes
1
出现上面的结果表示集群部署完成。
上次更新: 2024/08/05, 09:01:33