问题一
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
问题一解决
添加 elasticsearch 用户组和用户:
[root@tcloud ~]# groupadd elasticsearch
[root@tcloud ~]# useradd -g elasticsearch elasticsearch
# 设置密码
[root@tcloud ~]# echo "elasticsearch" | passwd elasticsearch --stdin
将ES的文件转到 elasticsearch 下:
[root@tcloud ~]# cd /usr/local/elasticsearch
[root@tcloud ~]# chown -R elasticsearch .
[root@tcloud ~]# chgrp -R elasticsearch .
[root@tcloud elasticsearch]# ll
total 448
drwxr-xr-x 3 elasticsearch elasticsearch 4096 Jul 31 11:22 bin
drwxr-xr-x 2 elasticsearch elasticsearch 4096 Jul 31 12:16 config
drwxr-xr-x 3 elasticsearch elasticsearch 4096 Oct 31 2018 lib
-rw-r--r-- 1 elasticsearch elasticsearch 13675 Oct 31 2018 LICENSE.txt
drwxr-xr-x 2 elasticsearch elasticsearch 4096 Jul 31 12:01 logs
drwxr-xr-x 27 elasticsearch elasticsearch 4096 Oct 31 2018 modules
-rw-r--r-- 1 elasticsearch elasticsearch 401465 Oct 31 2018 NOTICE.txt
drwxr-xr-x 2 elasticsearch elasticsearch 4096 Oct 31 2018 plugins
-rw-r--r-- 1 elasticsearch elasticsearch 8519 Oct 31 2018 README.textile
修改 sudoers 文件,给用户 elasticsearch 添加 sudo 权限:
[root@tcloud ~]# vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
# 添加elasticsearch
elasticsearch ALL=(ALL) ALL
启动时切换到 elasticsearch 用户下。
问题二
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题二解决
# 查看系统环境变量vm.max_map_count
[root@tcloud ~]# sysctl -a | grep vm.max_map_count
vm.max_map_count = 65530
# 修改系统环境变量vm.max_map_count
[root@tcloud ~]# vim /etc/sysctl.conf
# 末尾添加
vm.max_map_count = 262144
# 配置文件修改完后需要重启才能生效 可使用下面命令使得本次启动有效
[root@tcloud ~]# sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
修改最大文件描述符数量和用户最大线程数
[root@tcloud ~]# vim /etc/security/limits.conf
# 添加下面代码至文件末尾:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096