当前位置: 首页 >服务端 > ES在Linux上的配置

ES在Linux上的配置

1.ES是基于Lucene进行开发的,Lucene又是apache基金会的一个项目,也就是说Lucene必须要jdk环境,ES也必须要jdk环境


2.拿到一个新的Linux服务器的时候如何配置

2.1修改hostname

可以非常直观的看到该服务器上所搭建的软件/架构/中间件…

vim /etc/sysconfig/network

修改HOSTNAME=es01

2.2修改hostname和IP的映射

也就是说其他的服务器需要使用ssh访问这一台服务器的时候
es01 192.168.23.167
redis02 192.168.23.168

vim /etc/hosts

在末尾写入192.168.23.167 es01
必须要和hostname所配置的es01保持一致

2.3直接关闭防火墙/开启防火墙访问端口号

如果服务器只需要在内网,可以直接关闭防火墙
如果服务器上所部署的项目必须要暴露给外网,不能关闭防火墙,只能开放端口
关闭防火墙:service iptables stop

2.4需要关闭防火墙的开机启动

chkconfig iptables off

2.5重启

reboot

3.配置jdk

参考我的另一篇文章:Linux环境下安装jdk

4.ES的配置

4.1使用xftp工具把ES的压缩包上传到Linux服务器上

4.2解压ES的压缩包

tar -zxvf elasticsearch...

4.3增大Linux上部署软件的内存和硬盘

vim /etc/security/limits.conf

直接跳到最后一行

* soft nproc 655350* soft nofile 655350* hard nproc 655350* hard nofile 655350

ES在Linux上的配置 _ JavaClub全栈架构师技术笔记

4.4最大的线程数

系统默认都有自我保护,不会开启很大的线程,所以需要自己手动开启

vim /etc/sysctl.conf

最后一行添加:vm.max_map_count = 262144
ES在Linux上的配置 _ JavaClub全栈架构师技术笔记

4.5配置用户最大的线程数

vim /etc/security/limits.d/90-nproc.conf*  softnproc 1024 ---> 4096rootsoftnproc unlimited

ES在Linux上的配置 _ JavaClub全栈架构师技术笔记

4.6使其永久生效

sysctl -p

ES在Linux上的配置 _ JavaClub全栈架构师技术笔记

4.7进入到ES的bin目录启动

./elasticsearch

4.8验证是否配置成功

浏览器中输入 ip:9200
看到以下信息说明启动和配置成功:
ES在Linux上的配置 _ JavaClub全栈架构师技术笔记

4.9配置中文分词器(搜狗,IK)

因为ES是外国人开发的,最终的情况下外国人对中文的汉字/词语不是特别了解
This is Java
This Java
is Java
Java
is
This

我爱java


java
我爱
爱java

就是为了让搜索变得更加精准
!!!!如果ES6.4.0那么分词器的版本也必须是6.4.0!!!!

4.9.1使用xftp把IK分词器压缩包上传到Linux服务器上

4.9.2 使ES集成IK分词器

4.9.3在ES的plugins目录中创建IK目录

mkdir IK

4.9.4解压IK分词器

所有的IK分词器的压缩包都是zip格式

unzip elasticsearch-analysis-ik-6.4.0.zip

4.9.5启动ES

仍然是在ES的bin目录下执行

./elasticsearch

配置ES所遇到的问题:

1.can not run elasticsearch as root

因为ES有自我保护机制,root用户的权限过大,因为如果使用root,可能容易修改到ES自带的配置
创建esuser用户并设置密码

useradd esuserpasswd esuser

使用root用户对esuser授权(es目录)

chown -R esuser ES安装目录

然后切换euser用户登陆:su esuser

2.CONFIG_SECCOMP not compiled into keel,CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed

需要修改ES的配置文件,应为最终CONFIG_SECCOMP系统在centos7中默认会被加载,但是在centos6中没有CONFIG_SECCOMP
解决方案:
1. centos6 --> 7
2. 修改ES的配置:在yml中进行配置

cd ES安装目录/configvim elasticsearch.yml#修改集群名称(名字可以随便取)cluster.name: my-cluster(修改)#如果未单节点无所谓(如果为集群,则每一个节点的node-name不能重复)(名字可以随便取)node.name: node-1(修改)#ES的节点信息数据(默认data目录是不存在的,如果ES从来没有启动过,可以进行手动创建,一旦ES启动后,会默认创建)path.data: ES安装目录/data(修改)#ES的日志信息目录path.logs: ES安装目录/logs(修改)#放开ES的内存锁,让ES直接拥有最大的内存权限bootstrap.memory_lock: false(修改)#解决此问题bootstrap.system_call_filter: false(添加)#配置当前ES服务器绑定的IP地址(0.0.0.0)	一旦配置的是0.0.0.0代表所以的电脑都可以进行连接(对链接不再造成任何限制)network.host: Linux服务器的IP(修改)#识别集群中其他节点的host(如果为单节点只需要配置一个即可)discovery.zen.ping.unicast.hosts: ["Linux服务器的IP“](修改)

3.使用创建的esuser用户启动ES没有问题,但是当使用root用户启动一次后,再使用esuser用户启动可能会有问题

新创建的esuser用户无法使用root用户所创建出的文件
无论使用什么用户启动,都会创建一个文件elasticsearch.keystore文件,因为是root用户创建,其他用户没有权限访问/修改

作者:dh@
来源链接:https://blog.csdn.net/qq_45358679/article/details/104233354

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/42353.html

分享给朋友:

“ES在Linux上的配置” 的相关文章