您当前的位置: 首页 >  java持续实践 linux

es 7.x Linux 单节点部署

java持续实践 发布时间:2022-01-22 14:49:33 ,浏览量:4

文章目录

      • es的Linux安装包的上传
      • 创建es用户
      • 修改配置
      • es的启动

首先安装一个Linux的虚拟机
https://javaweixin6.blog.csdn.net/article/details/122572858

es的Linux安装包的上传

到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

创建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

es的启动

在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. 可以看到启动成功.

查看一下内存 可以看到内存基本满了

关注
打赏
查看更多评论

java持续实践

暂无认证

  • 4浏览

    0关注

    583博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录