安装注意事项:
1、安装JDK(ES使用java编写的)
2、更改 /config/jvm.options文件中的ES使用内存大小,默认是1G的内存
3、更改 /bin/elasticsearch.yml中的IP地址为本机地址
报错问题
1、ES需要在非root账户下启动,在root账户下启动报错如下
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.4.3.jar:6.4.3]
解决方案创建新账户:
//创建分组
groupadd jacks
//创建用户
useradd jack -g jacks -p 123456
2、用户权限问题报错,报错如下
Exception in thread "main" java.nio.file.AccessDeniedException: /home/software/elasticsearch-6.4.3/config/jvm.options
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:60)
解决方案:给用户分配权限
chown -R jack:jacks /home/software/elasticsearch-6.4.3
3、elasticsearch用户拥有的内存权限太小,至少需要262144;
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案
(1)、解决下图问题
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
切换为root用户 执行 vi /etc/security/limits.conf 命令并在文件末尾加上以下内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
(2)、 解决下图问题
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案:
Ⅰ 、切换为root账户设置执行 执行下列命令(不重启系统有效)
sysctl -w vm.max_map_count=262144
该命令执行后虚拟机,则该设置重启失效
Ⅱ、永久有效方法
在 /etc/sysctl.conf文件最后添加一行 vm.max_map_count=262144
执行 sysctl -p命令 ,使配置生效
执行完上述问题,重启系统(shutdown -r now ),
再次执行启动ES命令,ES即可完美启动
关闭防火墙 systemctl stop firewalld.service,然后用IP地址端口9200访问成功。ES就安装成功了