一、ElasticSearch安装部署
1、下载软件包
- 前往官网下载,下载对应平台的软件包
2、解压软件包
- 解压命令
tar -zxvf ./elasticsearch-7.8.0-linux-x86_64.tar.gz
3、创建启动用户并启动应用
elasticsearch为了安全,不能用root用户运行应用实例,需要为实例创建用户。如果用root用户运行,会出现以下异常。
java.lang.RuntimeException: can not run elasticsearch as root
- 创建用户命令
adduser elasticsearch
- 修改用户密码
passwd elasticsearch
- 将es解压目录的所有者授予此用户
chown -R elasticsearch elasticsearch-7.8.0
- 切换至elasticsearch用户
su elasticsearch
- 进入es安装目录,运行启动脚本
/usr/local/elasticsearch-7.8.0/bin/elasticsearch -d
4、常见错误
完成上述步骤后,在本地虚拟机中启动es单实例,直接运行,通常会抛出如下错误。
- 用户被限制打开的文件描述符数量过低
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决方法:编辑 /etc/security/limits.conf,追加以下内容,注意此文件修改后需要重新登录用户,才会生效
elasticsearch hard nofile 65536
elasticsearch soft nofile 65536
执行命令查看用户限制
ulimit -a
- 用户别限制打开的线程数过低
max number of threads [3796] for user [elasticsearch] is too low, increase to at least [4096]
解决方法:编辑 /etc/security/limits.conf,追加以下内容,注意此文件修改后需要重新登录用户,才会生效
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
执行命令查看用户限制
ulimit -a
- 虚拟内存区域被限制过低
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案: /etc/sysctl.conf文件最后添加一行
echo "vm.max\_map\_count=262144" >> /etc/sysctl.conf
#使修改立即生效
sysctl -p
查看修改结果:
sysctl -a | grep vm.max_map_count
- 提示默认发现配置不适合生产环境使用
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
解决方法:修改elasticsearch.yml配置
#打开节点名称的配置
node.name: node-1
#这里的node-1为node-name配置的值
cluster.initial_master_nodes: ["node-1"]
#外部ip访问elasticsearch
network.host: 0.0.0.0
5、开放端口
- 查看开放的端口号
firewall-cmd --list-all
- 设置开放端口号
firewall-cmd --add-port=9200/tcp --permanent
- 重启防火墙
firewall-cmd --reload
6、验证是否部署成功
- 访问部署服务器es实例,默认端口为9200