首先,需要确保Java已经安装好,并且配置好了JAVA_HOME 环境变量。
我的环境:
Linux:CentOS 7.6 Elasticsearch:7.6.1 Java:1.8.0_202
Elasticsearch:下载地址包含各种版本,以最新版为例
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
一、下载并解压Elasticsearch;我的ES最终路径为:
通常Linux下wget方式下载比较慢,这里选择采用迅雷下载到本地后,再上传到Linux
二、上传完成后打开目录,解压缩es的压缩包
tar -zxvf elasticsearch-7.6.1-xxx
我是解压缩到/usr/local/es目录下
三、修改配置文件
es启动需要修改多个配置文件,否则会报错,具体如下
a、切换到其他用户启动,如上图所示,当我们以root用户执行 ./elasticsearch 的时候,会报错,es不能用root用户运行,这里,我们需要手动创建用户
# 首先切换到 root 用户,输入密码,然后执行以下步骤:
su root
# 1、创建一个用户es
useradd es
# 2、为es用户赋予 /usr/local/es 目录权限,不赋权,会提示没有权限访问
chown -R es /usr/local/es/elasticsearch-7.6.1
**b、开启远程访问,**可以在本机通过localhost:9200 进行访问,但是却不能在远程通过 IP:9200进行访问。
修改 /config/elasticsearch.yml文件,找到 Network ,修改下面的项目,重新启动即可。
network.host: 0.0.0.0
0.0.0.0表示任何地址都可以访问,也可以根据实际修改为自定的ip地址
c、其他错误信息,启动报以下错误:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
这个错误,是linux下常见的错误,主要是因为linux会限制进程的最大打开文件数,
可通过下面2个命令查看当前数量
ulimit -Hn
ulimit -Sn
只需要按照下面的配置修改一下即可解决:
# 首先切换到 root 用户
su root
# 输入密码,然后编辑下面文件
vi /etc/security/limits.conf
# 修改/etc/security/limits.conf文件,在文件末尾添加以下内容,用户退出后重新登录生效
* soft nofile 65536
* hard nofile 65536
[2]:max number of threads [3818] for user [es] is too low, increase to at least [4096]
可通过命令查看
ulimit -Hu
ulimit -Su
#问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf, 增加配置
* soft nproc 4096
* hard nproc 4096
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
这个是ES使用的最大虚拟机内存太小,直接调大即可,在 root 用户下执行下面命令:
sysctl -w vm.max_map_count=262144
也可以如下修改配置
vi /etc/sysctl.conf
sysctl -p #执行命令sysctl -p生效
#增加配置vm.max_map_count=262144
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
#设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前是单机,放入一个节点即可
#注意这里,如果目前是单节点的话,一定要修改该值为节点的名称,否则虽然启动成功了,但是通过curl命令向elasticsearch服务中新增数据时,会出现 "master_not_discovered_exception"错误
还是找到 config/elasticsearch.yml 文件,编辑,找到Discovery 配置附近,修改:
# 取消注释,并修改属性
节点ip: discovery.seed_hosts: [“192.168.56.101”]
节点名称: cluster.initial_master_nodes: [“node-101-master”]
注, 修改后需要从新登陆当前用户才能生效
在elasticsearch主目录,运行命令:bin/elasticsearch
后台启动命令,命令行退出后仍可运行: bin/elasticsearch -d
如果没有其他报错,则启动成功
访问地址:ip为es安装的虚拟机ip,端口默认9200
http://192.168.56.101:9200/
至此,es单机版安装完毕,下一篇,安装分词器,kibana等