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. Element里el-badge在el-tab里视图不被渲染问题

    我们发现:el-badge绑定的变量是有数据的,但是界面上就是不渲染. 这个时候执行getTodo发现数据已经打印出来,当是视图未发送变化.于是查阅资料:vm.$forceUpdate()示例:迫使 ...

  2. CentOS7.7下二进制部署MySQL多版本多实例实战

    第一章 需求说明 部署MySQL5.7的三个多实例环境(端口分别为3307,3308,3309) 部署MySQL5.6和8.0版本数据库实例((端口分别为3316和3326) 第二章 环境准备 1.虚 ...

  3. Java中StringBuffer类

    StringBuffer: 线程安全的可变字符串. StringBuffer和String的区别?前者长度和内容可变,后者不可变.如果使用前者做字符串的拼接,不会浪费太多的资源. StringBuff ...

  4. pytorch 矩阵数据增加维度unsqueeze和降低维度squeeze

    增加一个维度 out.unsqueeze(-1) 降低一个维度 out.squeeze(dim=1)

  5. Ansible playbook 编程

    Ansible playbook 编程详解与各种小案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: ...

  6. tp5--相对路径和绝对路径

    首先,我们要先明白相对路径和绝对路径的理论: 绝对路径:是从盘符开始的路径,形如C:\windows\system32\cmd.exe相对路径:是从当前路径开始的路径,假如当前路径为C:\window ...

  7. (转)对中级 Linux 用户非常有用的 20 个命令

    也许你已经发现第一篇文章非常的有用,这篇文章是继对初级Linux用户非常有用的20个命令的一个延伸. 第一篇文章的目的是为新手准备的而这篇文章则是为了Linux的中高级用户.在这里你将学会如何进行自定 ...

  8. 安装并使用pyecharts库

    在cmd命令行中输入安装命令, pyecharts库的安装命令如下: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts ...

  9. eclipse安装Axis2插件和简单的webservice发布

    2019独角兽企业重金招聘Python工程师标准>>> Axis2与CXF是现在很主流的WebService开发框架(java6也已经支持了),项目上还都是基本上用前两种做开发,今天 ...

  10. php private学习笔记

    类的权限修饰符,放在属性/方法的前面.用来说明属性/方法的权限特点. 三种权限修饰符 private  私有的 public   公共 protected  保护的 privata 的属性.方法只能在 ...