linux elasticsearch以及ik分词器的安装

说明

使用版本为7.9.0版本的elasticsearch以及ik分词器插件,非集群模式。

准备工作

下载elasticsearch安装包以及ik分词器编译好的zip包,将相关包上传至服务器

安装es

新建安装目录elasticsearch目录,解压elasticsearch-7.9.0-linux-x86_64.tar.gz包,进入解压后文件夹。

tar xvf elasticsearch-7.9.0-linux-x86_64.tar.gz

文件夹中如图目录结构,在该目录下创建data以及logs(如果没有的话)文件夹。

es ik分词器 java层使用 es安装ik分词器_java

进入config文件夹,修改elasticsearch.yml配置文件,将以下变量放开并修改。


es ik分词器 java层使用 es安装ik分词器_centos_02

cluster.name: elasticsearch   // 服务名称
node.name: node-1 			  // 节点名称
path.data: /path/to/data	  // 索引数据的储存路径 刚刚建立的文件夹地址,也可以换目录
path.logs: /path/to/logs	  // 日志文件的储存路径 刚刚建立的文件夹地址,也可以换目录
network.bind_host: 0.0.0.0	  // 绑定ip地址 设置为本机
http.port: 9200				  // 对外端口9200
bootstrap.memory_lock: false  // 是否锁住内存
cluster.initial_master_nodes: ["node-1"] // 初始化节点 由于非集群 只有一个节点

进入jvm.options进行修改,这里修改为,初始化堆空间和最大堆空间为1G,按照自己要求来,如果配置错误可能出现不打印日志killed情况,所以此处需要调整好堆空间大小。

-Xms1g
-Xmx1g

7.9.0版本的es采用的是jdk11,所以如果服务器上jdk版本不是jdk11需要使用es自带的jdk。

进入bin目录


es ik分词器 java层使用 es安装ik分词器_centos_03

打开文件elasticsearch-env将以上代码替换为下方代码,使用es自带jdk11,修改结果如下图所示。

if [ ! -z "$JAVA_HOME" ]; then
   JAVA="$JAVA_HOME/bin/java"
   JAVA_TYPE="JAVA_HOME"
 else
   if [ "$(uname -s)" = "Darwin" ]; then
   # macOS has a different structure
     JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
   else
     JAVA="$ES_HOME/jdk/bin/java"
   fi
   JAVA_TYPE="bundled jdk"
 fi
 
 
 if [ "$(uname -s)" = "Darwin" ]; then
   # macOS has a different structure
   JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
 else
   JAVA="$ES_HOME/jdk/bin/java"
 fi
 JAVA_TYPE="bundled jdk"


es ik分词器 java层使用 es安装ik分词器_elasticsearch_04

接下来解决分配内存不足的问题: 执行立即生效的命令

执行命令:
 sysctl -w vm.max_map_count=262144
 查看结果:
 sysctl -a|grep vm.max_map_count
 显示:
 vm.max_map_count = 262144

由于以上修改重启系统之后将失效,所以:

/etc/sysctl.conf文件最后添加一行
 vm.max_map_count=262144

安装ik分词器

建立ik文件夹,将elasticsearch-analysis-ik-7.9.0.zip文件移动至文件夹中,进行解压:

unzip elasticsearch-analysis-ik-7.9.0.zip

将解压之后的文件拷贝到es根目录的plugins插件文件夹中,ik分词器插件安装完成。

启动es

root是不能启动es的,会报出如下异常,所以需要新建一个用户,或者可以采用已有的除了root之外的用户, 这里使用es用户。

es ik分词器 java层使用 es安装ik分词器_centos_05

将文件夹拥有权给es用户

chown -R es:es elasticsearch-7.9.0

切换到es用户

su - es

文件夹bin下启动es

./elasticsearch   // 正常启动
./elasticsearch   // 后台启动