- es的Linux安装包的上传
- 创建es用户
- 修改配置
- es的启动
到es的官网下载es的Linux安装包 elasticsearch-7.8.0-linux-x86_64.tar.gz
将此上传到Linux服务器上
在Linux的opt目录下新建目录 mkdir -p module/software
使用electerm
的sftp功能将文件拷贝到/opt/module/software 目录下 可以看到上传的包
把es解压缩到上一级目录
cd /opt/module/software/
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C ../
简化名称为es mv elasticsearch-7.8.0/ es
由于安全原因, Linux下的es不能root用户直接启动, 得创建用户 因此, 创建一个用户名称为es, 第二个命令为给es用户设置密码. 重复设置两次密码即可.
[root@localhost module]# useradd es
[root@localhost module]# passwd es
Changing password for user es.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
删除es用户的命令 : userdel -r es
给es用户设置权限
[root@localhost module]# chown -R es:es /opt/module/es
[root@localhost module]#
修改配置
在es的config目录下的elasticsearch.yml文件末尾, 添加如下的信息. 设置es节点的名称, 端口等信息.
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
修改Linux系统文件数的限制, 由于es文件创建较多, 因此需要设置Linux文件数量限制. 修改 vim /etc/security/limits.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
修改 vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称
修改vim /etc/sysctl.conf
# 在文件中增加下面内容
# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
重新加载配置 sysctl -p
在root用户下启动es. 进入到es的目录 , 执行bin/elasticsearch
进行es的启动. 会提示报错, 不能root用户启动es 切换到es用户下, 运行es.
[root@localhost es]# su es
[es@localhost es]$ pwd
/opt/module/es
[es@localhost es]$ bin/elasticsearch
此时还是会报错
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /opt/module/es/config/elasticsearch.keystore
Likely root cause: java.nio.file.AccessDeniedException: /opt/module/es/config/elasticsearch.keystore
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
at java.base/java.nio.file.Files.newByteChannel(Files.java:375)
at java.base/java.nio.file.Files.newByteChannel(Files.java:426)
at org.apache.lucene.store.SimpleFSDirectory.openInput(SimpleFSDirectory.java:77)
at org.elasticsearch.common.settings.KeyStoreWrapper.load(KeyStoreWrapper.java:220)
at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:240)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
原因是因为es启动的时候, 会创建一些文件, 此时es用户还没有权限. 在root用户下执行 chown -R es:es /opt/module/es
再回到es用户下, 执行启动命令
[es@localhost es]$ su root
Password:
[root@localhost es]# chown -R es:es /opt/module/es
[root@localhost es]# su es
[es@localhost es]$ bin/elasticsearch
再次执行, 可以看到执行成功. (由于分配的虚拟机内存只有1g, 第一次启动还是失败, 第二次成功了. ) 在浏览器中, 输入虚拟机的ip加上端口9200. 可以看到启动成功.
查看一下内存 可以看到内存基本满了