elasticsearch kibana + 分词器安装详细步骤

一、准备环境

系统:Centos7

JDK安装包:jdk-8u191-linux-x64.tar.gz

ES安装包:elasticsearch-7.2.0-linux-x86_64.tar.gz下载地址

Kibana安装包:kibana-7.2.0-linux-x86_64.tar.gz下载地址

IK分词器安装包:elasticsearch-analysis-ik-7.2.0.zip下载地址

目前准备两个节点做节点规划,分别是192.168.56.105192.168.56.106

首先需要将JAVA环境安装完毕,目前的ES版本使用的是1.9版本的JDK,但是在安装包中已经包含了1.9的版本,所以我们自己可以使用1.8的,最终ES检测是否安装了1.9版本的,如果没有安装则使用自己安装包内的JDK

#分别在两台机器上创建用户和用户组,这里每台机器上创建两个用户,后面涉及到单台机器多节点安装直接使用,如果只是单台机器单节点安装,每台建一个用户就行,主要是起到一个隔离作用,而且ES不能通过root用户启动
$ groupadd elastic
$ useradd -g elastic elastic1
$ useradd -g elastic elastic2
$ passwd elastic1
$ passwd elastic2
#关闭防火墙,禁止开机启动
$ systemctl stop firewalld
$ systemctl disable firewalld

二、每台机器单节点集群

在做当前类型的安装的时候只使用elastic1用户,后面需要单机安装多节点的时候才用elastic2用户

#我是安装在/opt目录 分别对两台机器做如下操作
root@localhost$ tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz
root@localhost$ mv elasticsearch-7.2.0 elasticsearch-7.2.0-elastic1
#设置目录属于elastic1用户elastic用户组
root@localhost$ chown -R elastic1:elastic elasticsearch-7.2.0-elastic1

如上内容设置完成之后,进行配置ES,在进行配置之前:

192.168.56.105节点作为master

192.168.56.106节点作为slave1

master(105)节点 config/elasticsearch.yml文件配置:

#集群名称
cluster.name: es_cluster
#节点角色名称
node.name: master
#当前主机Host
network.host: 192.168.56.105
#http端口
http.port: 9200
#tcp端口
transport.tcp.port: 9300
#是否为master节点
node.master: true
#是否作为数据节点
node.data: true
#这里是跨域相关内容的配置
http.cors.enabled: true
http.cors.allow-origin: "*"
#这里代表的是当前服务器上运行几个节点的ES实例
node.max_local_storage_nodes: 1
#符合master要求的节点,目前就只有一个,ES是自己内部实现了高可用的,所以可以多master
cluster.initial_master_nodes: ["192.168.56.105"]
#日志存储位置(不配置默认在安装包路径)
path.logs: /opt/elastic1/logs
#数据存储位置(不配置默认在安装包路径)
path.data: /opt/elastic1/data

slave1(106)节点 config/elasticsearch.yml文件配置:

cluster.name: es_cluster
node.name: slave1
network.host: 192.168.56.106
http.port: 9200
transport.tcp.port: 9300
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
node.max_local_storage_nodes: 1
#这里填写的是master节点的IP和TCP端口,有多少master填多少个,主要是用来做心跳检测和数据交互
discovery.seed_hosts: ["192.168.56.105:9300"]
path.logs: /opt/elastic1/logs
path.data: /opt/elastic1/data

如果在真实项目中还需要设置节点堆栈内存,默认是1G

config/jvm.options

-Xms1g
-Xmx1g

设置内存的时候根据自己情况设置,但是最好别超过32G,我在真实项目中设置的是31G因为超过的话会存在大内存问题,会造成内存资源浪费。

如上内容设置完成之后可以进行启动测试,启动的时候需要切到指定用户去启动,因为ES不能使用root启动,并且启动的时候很可能会报错,报错看下面解决办法,需要设置一些系统参数

# 终端启动运行
$ ./bin/elasticsearch
# 后台启动运行
$ ./bin/elasticsearch -d

三、每台机器多节点集群

每台机器上安装2个ES节点(两个ES实例)相关配置方式,目前规划

192.168.56.105

  • elastic1:master
  • elastic2:slave2

192.168.56.106

  • elastic1:slave1
  • elastic2:slave2

根据上面的操作,准备好相关的包,并且设置好相关的权限,设置完成之后进行配置,目前是两台机器,四个ES节点(实例)

相关配置:

在进行相关配置的时候可以直接从另外一个slave节点copy一份配置文件来进行修改

192.168.56.105-master(elaster1):config/elasticsearch.yml

#只需要修改每台机器上能够部署的节点数就可以,其他的和上面的配置相同
node.max_local_storage_nodes: 2

192.168.56.105-slave2(elaster2):config/elasticsearch.yml

cluster.name: es_cluster
#修改节点名称
node.name: slave2
network.host: 192.168.56.105
#这里需要修改端口,不能和master节点冲突
http.port: 9201
#这里需要修改端口,不能和master节点冲突
transport.tcp.port: 9301
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
#将机器能够部署的节点数进行修改
node.max_local_storage_nodes: 2
#这里填写的是master节点的IP和TCP端口,有多少master填多少个,主要是用来做心跳检测和数据交互
discovery.seed_hosts: ["192.168.56.105:9300"]
path.logs: /opt/elastic2/logs
path.data: /opt/elastic3/data

192.168.56.106-slave1(elaster1):config/elasticsearch.yml

# 根据上面的配置修改机器能够部署的节点数,其他参数不变
node.max_local_storage_nodes: 2

192.168.56.106-slave2(elaster2):config/elasticsearch.yml

cluster.name: es_cluster
#修改节点名称
node.name: slave2
#修改节点ip
network.host: 192.168.56.106
#这里需要修改端口,不能和master节点冲突
http.port: 9201
#这里需要修改端口,不能和master节点冲突
transport.tcp.port: 9301
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
#将机器能够部署的节点数进行修改
node.max_local_storage_nodes: 2
#这里填写的是master节点的IP和TCP端口,有多少master填多少个,主要是用来做心跳检测和数据交互
discovery.seed_hosts: ["192.168.56.105:9300"]
path.logs: /opt/elastic2/logs
path.data: /opt/elastic3/data

如上内容配置完成之后进行各个节点的启动,启动的时候不同节点需要使用不同用户进行启动,这样能保证程序的隔离性,包括在停进程的时候也是,如果都启动完成了,可以通过root账户进行jps命令进行检查实例是否存在两个。

105-elastic1$ ./bin/elasticsearch -d
105-elastic2$ ./bin/elasticsearch -d
106-elastic1$ ./bin/elasticsearch -d
106-elastic2$ ./bin/elasticsearch -d
#关闭es,直接kill 进程,当然最好是到指定用户下进行kill这样能够区分,不容易混淆

注:其实单台机器装多个节点只需要注意同一机器上的节点端口不要重复就行,其他的配置和横向扩展没区别

四、kibana安装和分词器安装

安装Kibana

$ tar -zxvf kibana-7.2.0-linux-x86_64.tar.gz

kibana只是一个客户端,主要是方便自己管理和查看ES集群状态,并且提供了一些数据分析的功能,数据查询工具,索引管理以及监控等功能,所以装在一台机器上就行,目前就装在192.168.56.105机器上,可以设置为和master节点相同的用户用户组也可以直接用elastic1

kibana-7.2.0-linux-x86_64/config/kibana.yml配置

#当前kibana所提供服务的节点地址
server.host: "192.168.8.108"
#服务名称
server.name: "yourkibana"
#连接的ES集群,连接master就行
elasticsearch.hosts: ["http://192.168.8.108:9200"]
#设置请求超时时间,默认是30000
elasticsearch.requestTimeout: 90000

配置完成之后启动验证是否成功

#现在终端启动,看看日志有没有报错的,没有的话再后台启动
$ ./bin/kibana
$ nohup ../bin/kibana &

访问Kibana

默认访问的端口是5601,地址是自己配置的地址,我这里是http://192.168.56.105:5601

Elasticsearch安装中文分词插件:

安装IK中文分词插件,将下载好的分词包安装解压然后放入到ES/plugin目录就可以了,但是在安装的时候要注意看版本之间的联系,刚开始的时候我使用的是7.5版本的分词器,安装的时候版本不兼容,后面下载了7.2版本的

$ yum install -y unzip
$ unzip -d ik elasticsearch-analysis-ik-7.2.0.zip
$ cp -r ik/ elasticsearch-7.2.0-elastic1/plugins/
$ cp -r ik/ elasticsearch-7.2.0-elastic2/plugins/
$ scp -r ik/ 192.168.56.106:/opt/elasticsearch-7.2.0-elastic1/plugins/
$ scp -r ik/ 192.168.56.106:/opt/elasticsearch-7.2.0-elastic2/plugins/
#登录到不同的节点去修改对应的ik文件夹的权限
$ chown -R elastic1:elastic /opt/elasticsearch-7.2.0-elastic1/plugins/

上面操作完成后,重启集群,然后验证是否能够进行正常的中文分词

如上图所示,能够对中文进行正确的分词,说明分词器安装成功

五、启动错误问题及解决办法

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

解决办法:

编辑/etc/security/limits.conf,追加以下内容

* soft nofile 65536
* hard nofile 65536

当前内容设置完成之后需要重新登录才能生效

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法:

编辑文件/etc/sysctl.conf,追加一下内容:

vm.max_map_count=655360

编辑完成之后保存,并执行sysctl -p命令

[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解决办法:

出现上面两个错误说明没有在配置文件中配置好ES,需要配置上面中括号中的参数,具体的配置根据节点角色定,该问题一般不会遇到

[4]: max number of threads [2048] for user [tongtech] is too low, increase to at least [4096]

解决办法:

编辑文件/etc/security/limits.d/20-nproc.conf ,修改文件中的数值

*          soft    nproc     65535
root soft nproc unlimited

以上内容修改完成之后启动ES,查看ES是否能够正常启动成功

Likely root cause: java.nio.file.AccessDeniedException: /opt/elasticsearch-7.2.0-elastic1/config/elasticsearch.keystore

出现这个错误说明没有权限,看下confg/elasticsearch.keystore文件是否拥有相关权限,如果么有权限,则进行设置

root@localhost$ chown -R elastic1:elastic elasticsearch.keystore

elasticsearch kibana + 分词器安装详细步骤的更多相关文章

  1. solr8.2 环境搭建 配置中文分词器 ik-analyzer-solr8 详细步骤

    一.下载安装Apache Solr 8.2.0 下载地址:http://lucene.apache.org/solr/downloads.html 因为是部署部署在windows系统上,所以下载zip ...

  2. 七、Elasticsearch+elasticsearch-head的安装+Kibana环境搭建+ik分词器安装

    一.安装JDK1.8 二.安装ES 三个节点:master.slave01.slave02 1.这里下载的是elasticsearch-6.3.1.rpm版本包 https://www.elastic ...

  3. Elasticsearch教程(三),IK分词器安装 (极速版)

    如果只想快速安装IK,本教程管用.下面看经过. 简介: 下面讲有我已经打包并且编辑过的zip包,你可以在下面下载即可. 当前讲解的IK分词器 包的 version 为1.8. 一.下载zip包. 下面 ...

  4. Elasticsearch 中文分词(elasticsearch-analysis-ik) 安装

    由于elasticsearch基于lucene,所以天然地就多了许多lucene上的中文分词的支持,比如 IK, Paoding, MMSEG4J等lucene中文分词原理上都能在elasticsea ...

  5. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  6. MySql Server 5.7的下载及安装详细步骤

    1.下载安装包 1)找到官网下载地址(https://dev.mysql.com),选择downloads,找到windows

  7. linux下mysql-5.5.15安装详细步骤

    linux下mysql-5.5.15安装详细步骤 注:该文档中用到的目录路径以及一些实际的值都是作为例子来用,具体的目录路径以各自安装时的环境为准 mysql运行时需要一个启动目录.一个安装目录和一个 ...

  8. Elasticsearch之分词器的作用

    前提 什么是倒排索引? Analyzer(分词器)的作用是把一段文本中的词按一定规则进行切分.对应的是Analyzer类,这是一个抽象类,切分词的具体规则是由子类实现的,所以对于不同的语言,要用不同的 ...

  9. Elasticsearch之分词器的工作流程

    前提 什么是倒排索引? Elasticsearch之分词器的作用 Elasticsearch的分词器的一般工作流程: 1.切分关键词 2.去除停用词 3.对于英文单词,把所有字母转为小写(搜索时不区分 ...

随机推荐

  1. [linux][MongoDB] mongodb学习(二):命令使用数据库

    使用数据库 # 查看数据库 > show dbs admin 0.000GB local 0.000GB # 查看表(集合) > show tables # 删除集合 > db.us ...

  2. Java如何遍历二维数据

    /* 需求:二维数组遍历 外循环控制的是二维数组的长度,其实就是一维数组的个数. 内循环控制的是一维数组的长度.*/class Array2Test { public static void main ...

  3. TensorFlow keras 迁移学习

    数据的读取 import tensorflow as tf from tensorflow.python import keras from tensorflow.python.keras.prepr ...

  4. gojs去水印

    重点在go.js文件中将这个方法中的代码注释掉即可 搜索关键字 7ca11abfd022028846 然后注释下列代码,注释前先整理JS格式 function ni() { if(th) { var ...

  5. php-fpm运行原理

    来源:https://blog.csdn.net/sinat_38804294/article/details/94393621 一.php-fpm由来1.cgi (common gateway in ...

  6. 闲置安卓设备搭建Linux服务器实现外网访问

    title: 闲置安卓设备搭建Linux服务器实现外网访问 这是我搭过的第一个博客系统,写贴纪念一下 待博主整理好思路,将今天所用到的全部分享! 好吧,我就是穷.富人靠科技,穷人靠变异.我这种穷人是真 ...

  7. Phaser都不懂,还学什么多线程

    前面的文章中我们讲到了CyclicBarrier.CountDownLatch的使用,这里再回顾一下CountDownLatch主要用在一个线程等待多个线程执行完毕的情况,而CyclicBarrier ...

  8. Spring Boot 之Spring data JPA简介

    文章目录 添加依赖 添加entity bean 创建 Dao Spring Data Configuration 测试 Spring Boot 之Spring data JPA简介 JPA的全称是Ja ...

  9. java 之 jsp tomcat启动失败问题

    问题描述: 创建了一个helloServlet 代码如下 package Test; import java.io.IOException; import javax.servlet.ServletE ...

  10. 即将进行论文答辩的我发现MyEclipse 2016 激活过期害得我又一次把 MyEclipse 2016 给重新激活注册,详细的图文解说激活过程

    背景: 在家美滋滋的上着网课享受着因为疫情带来的平静,没想到随着微信.钉钉铃声响起打破了我半年以来的平静的生活:通知我们过完劳动节要进行答辩,由于我的答辩项目是由 MyEclipse 这个工具编写的我 ...