1、解压
tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
2、设置
(1)config/elasticsearch.yml
默认为127.0.0.1,只能在本地访问ES服务器。
需要将ip改为实际IP或者0.0.0.0,这样外部(其它机器)也能访问ES服务器。
ES使用的端口默认是9200,也可以修改为其它的。
需要配置集群的初始节点:只有一个节点,也算是集群。
数组中写节点名,节点名默认是node-1,集群时要改节点名:
一般是node-1,node-2,node-n来命名。
如果不配置集群的初始节点,会报错:未配置集群的初始节点,集群的初始节点至少为1个
(2)在防火墙中开放对应的端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --reload
(3)config/jvm.options
ES依赖JDK,自带了JDK,在解压目录下有一个jdk目录,自带的jdk往往是最新版本的jdk。
因为ES处理的数据量级很大,默认设置的JVM占用的内存也就很大(默认1g),我们的机器|虚拟机往往提供不了指定大小的内存,我们可以改小一点
最大堆内存、最小堆内存的值要相同。
如不设置,往往会报错:内初不够、空间不足。
(4)修改可打开的文件描述符数量
ES本身很吃资源,要求能打开的文件描述符数量至少是65536,而Linux默认一个登录的用户可打开的文件描述符数量是4096,需要改一下。
需要先切换到root用户,因为我们要修改的文件默认是只读的,需要root的权限。
vim /etc/security/limits.conf
加上2行:
* soft nofile 65536 * hard nofile 65536
*表示Linux的所有用户,也可以换为:要用来启动ES的用户(不能用root来启动)。
#End of file 官方不是写着玩的,文件至此结束,后面的内容不识别(无效),我们添加的配置要放在这个注释的前面。
查看此配置是否成功:先切换到要启动ES的用户
ulimit -Hn
如果是65536就说明配置成功。
若未配置此项,会报错:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
(5)修改vm.max_map_count
默认为65530,ES要求至少为262144
sysctl -w vm.max_map_count=262144
此句命令需要root权限,可以先切换到root,或者以sudo执行
若未配置此项,会报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
(6)权限配置
ES不能用root账户启动,如果使用root账号启动ES,会报错:can not run elasticsearch as root
需要使用非root账户启动,如果没有其他账号,可以添加一个:
useradd 用户名
passwd 密码
启动ES的账号需要有解压目录的操作权限,所以需要配置一下解压目录的用户权限:先切换到root(解压目录的属主)
chmod 777 -R elasticsearch-7.6.2 #解压目录的路径要换为自己的,可以是相对路径,也可以是绝对路径
若不配置解压目录的权限,会报错:AccessDeniedException 没有相关权限
3、启动
切换到解压目录下,运行bin目录下的elasticsearch即可启动ES服务器
./bin/elasticsearch #这样启动,当前标签页会用不了,需要重启一个标签页来执行命令。可以在后面加上 -d 以守护线程的方式启动
es很吃资源,启动很慢。
新起一个标签页,执行
curl 127.0.0.1:9200
也可以在浏览器中输入ip:port进行验证。如果看到以下内容,说明ES启动成功:
127.0.0.1:9200/_cat,_cat目录是ES自带的一些功能:
常用的有
- master 查看master节点的信息
- nodes 查看所有节点的信息,比如ip、堆使用情况、内存使用情况、cpu使用情况等。如果不知道这些列表示什么,nodes?v,加一个v会显示列名。
- health 查看各节点的运行状况,green表示该节点正常运行(健康)
4、停止
ps -ef|grep elasticsearch
第一列数字是pid, kill 相关的pid,结束进程。会显示一大堆,只kill第一个就ok。