装了好久才装好,不容易啊,记录一下~
参考:
https://www.sojson.com/blog/81.html
https://www.cnblogs.com/zhi-leaf/p/8484337.html
https://blog.csdn.net/john1337/article/details/78558297
CentOS 7 64位
系统jdk 1.8
,这个是最低要求elasticsearch-6.5.1.tar.gz
压缩包(1)解压压缩包。
tar -zxvf elasticsearch-6.5.1.tar.gz
(2)在/opt
下新建文件夹 dev-env
,并将解压后的 elasticsearch-6.5.1
移动到 /opt/dev-env/
下面。
mv elasticsearch-6.5.1/ /opt/dev-env/
elasticsearch
不允许root
用户启动运行。所以,需要为普通用户赋权限。
注意:以下创建用户和赋权限的操作都需要先切换为root
用户才行。
(3)创建一个普通用户es-admin
。
useradd es-admin
(4)为用户es-admin
创建密码,连续输入两次密码。
passwd es-admin
(5)创建一个用户组es
。
groupadd es
(6)分配用户es-admin
到用户组es
中。
usermod -G es es-admin
(7)进入elasticsearch-6.5.1
根目录。
cd /opt/dev-env/elasticsearch-6.5.1
(8)给用户es-admin
赋予权限,-R
表示逐级(N层目录)
, *
表示 任何文件
。
chown -R es-admin.es *
(9)切换到es-admin
用户。
su es-admin
(10)启动 elasticsearch-6.5.1
的 bin
目录下的elasticsearch
。如果想要在后台运行,加一个参数-d
。
cd /opt/dev-env/elasticsearch-6.5.1
./bin/elasticsearch
后台运行:
./bin/elasticsearch -d
(11)关闭后台运行的elasticsearch
。
首先,查看进程号:
ps -ef|grep elasticsearch
然后,杀掉进程:
# 14056 是你查到的进程号
kill -9 14056
# 修改elasticsearch的配置文件
vim ./config/elasticsearch.yml
# cluster.name 指定集群名称
cluster.name: es-admin-application
# node.name 指定节点名称
node.name: node-1
# network.host 指定elasticsearch服务器的地址,如果需要远程访问,那么就需要配置这个地址
network.name: 192.168.137.128
# http.port 指定服务的端口
http.port: 9200
(1)本地测试
执行如下命令,注意192.168.137.128
是在配置文件里配置的network.name
。
curl -X GET 192.168.137.128:9200
得到返回的json
数据:
{
"name" : "node-1",
"cluster_name" : "es-admin-application",
"cluster_uuid" : "N8kQ7LGjTLiLh5-WR3KAZA",
"version" : {
"number" : "6.5.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "8c58350",
"build_date" : "2018-11-16T02:22:42.182257Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
(2)远程测试
直接在浏览器中输入http://192.168.137.128:9200
,同样返回上面的json
数据。
参考:https://www.cnblogs.com/zhi-leaf/p/8484337.html
(1)问题1
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
ulimit -Hn
ulimit -Sn
解决方法:
切换到root
用户,修改/etc/security/limits.conf
文件,增加如下配置,切回es-admin
用户后即生效。*
代表所有用户都有效。
* soft nofile 65536
* hard nofile 65536
(2)问题2
max number of threads [3818] for user [es] is too low, increase to at least [4096]
最大线程个数太低。修改配置文件/etc/security/limits.conf
,增如下加配置项
* soft nproc 4096
* hard nproc 4096
(3)问题3
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [655360]
解决方法:
切换到root
用户,修改/etc/sysctl.conf
文件,增加如下配置。
vm.max_map_count=655360
执行sysctl -p
,修改生效。
(4)问题4
Unable to access ‘path.data’
无法访问data
文件夹。
解决方法:
在elasticsearch
安装目录下创建data
文件夹,并为es-admin
用户赋予权限。
# 切换为root用户
su
# 创建文件夹
mkdir data
# 赋权限
cd /opt/dev-env/elasticsearch-6.5.1
chown -R es-admin.es *
(5)问题5
所有配置都正确,远程还是无法访问,大概是防火墙没有关闭。
关闭防火墙:
systemctl stop firewalld.service