服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

这篇具有很好参考价值的文章主要介绍了服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

elasticsearch文章系列

elasticsearch安装教程大全
elasticsearch学习笔记(一)
elasticsearch学习笔记(二)
elasticsearch学习笔记(三)

前置安装docker

可参考:Debian安装docker
Centos安装docker

创建docker网络

(docker-compose可以直接互连)
因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:

docker network create es-net

安装Elasticsearch

Elasticsearchkibana版本要一致

#版本要一致
docker pull elasticsearch:7.12.1
docker pull kibana:7.12.1
# 宿主机挂载目录
mkdir -p /docker/elasticsearch/data
mkdir -p /docker/elasticsearch/plugins
运行elasticsearch
这里默认内存是1g,最好不要少于512m
#运行es7
docker run -d \
	--name es7 \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/docker/elasticsearch/data \
    -v es-plugins:/docker/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.12.1

检查是否成功 http://ip:9200/

命令解释:

  • -e "cluster.name=es-docker-cluster":设置集群名称
  • -e "http.host=0.0.0.0":监听的地址,可以外网访问
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
  • -e "discovery.type=single-node":非集群模式
  • -v es-data:/docker/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
  • -v es-logs:/docker/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
  • -v es-plugins:/docker/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
  • --privileged:授予逻辑卷访问权
  • --network es-net :加入一个名为es-net的网络中
  • -p 9200:9200:端口映射配置

安装Kibana

kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。

运行kibana
#运行kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es7:9200 \
--network=es-net \
-p 5601:5601  \
kibana:7.12.1


#检验
http://ip:5601/

左侧Devtools中可以快速编写DSL
  • --network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
  • -p 5601:5601:端口映射配置

kibana启动一般比较慢,需要多等待一会,可以通过命令:

docker logs -f kibana

查看运行日志,当查看到下面的日志,说明成功:

服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

此时,在浏览器输入地址访问:http://ip:5601,即可看到结果

DevTools

kibana中提供了一个DevTools界面:
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。

安装IK分词器插件

原有默认的分词器对中文分词并不友好
可以使用IK分词器

#### 安装IK分词器插件
# 进入容器内部
docker exec -it es7 /bin/bash

# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

# 等待下载安装完成

#退出
exit
#重启容器
docker restart es7

IK分词器包含两种模式:

  • ik_smart:最少切分

  • ik_max_word:最细切分
    服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

配置IK分词器字典

es使用通过词来分,但终究别人定义的词,我们可以自定义一些词典

# 可以进入修改字典
docker exec -it es7 /bin/bash
# 字典目录
cd /usr/share/elasticsearch/config/analysis-ik
# 修改配置文件
vi IKAnalyzer.cfg.xml
# :wq

# 退回到宿主机
exit

# 重启es和kibana
docker restart es7
docker restart kibana

IKAnalyzer.cfg.xml中可以配置


<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 -->
        <entry key="ext_dict"></entry>
         <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords"></entry>
        <!--用户可以在这里配置远程扩展字典 -->
        <entry key="remote_ext_dict">http://113.131.57.206:7090/remote.txt</entry>
        <!--用户可以在这里配置远程扩展停止词字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

上面两个是本地的额外字典额外禁止词位置,可以自己添加xml文件同目录的文件如,xxx.dic

下面两个是远程的

推荐配置IK远程热更新字典

每次都要进入容器内部修改很麻烦, 而且vi编写也麻烦, 可以通过远程字典来热更新词典

创建配置字典位置

先在宿主机的目录创建字典文件

## 宿主机的目录
cd /docker/elasticsearch/IK/

## 创建字典文件
touch remote.txt

创建完后, 可以通过MobaXterm等远程连接工具, 然后用VSCode打开编辑
remote.txt
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

nginx配置转发到字典位置

安装nginx可以参考这里的unbuntu安装nginx部分(Debian也可以用)
通过apt-get安装的nginx的目录

#安装好的nginx相关文件位置:

    /usr/sbin/nginx:主程序

    /etc/nginx:存放配置文件

    /usr/share/nginx:存放静态文件

    /var/log/nginx:存放日志

修改nginx配置

cd /etc/nginx

# 修改conf.d目录下的,没有可以自己创建一个
# 主配置已经默认引入这目录下所有配置文件
cd /conf.d
# 创建
touch http.conf

http.conf加入以下内容:

# 根据约定,URL 尾部的 / 表示目录,没有 / 表示文件。所以访问 /some-dir/ 时,服务器会自动去该目录下找对应的默认文件。
# 如果访问 /some-dir 的话,服务器会先去找 some-dir 文件,找不到的话会将 some-dir 当成目录,重定向到 /some-dir/

# 每次更改后重启nginx
# cd /usr/sbin
# ./nginx -s reload

    server {
        listen       7090;
        server_name  localhost;
        server_name  113.131.57.206; #你的ip

        
        charset 'utf-8';
        default_type 'text/html';
        
		# 端口直接指向那个目录
        location / {
           root /docker/elasticsearch/IK; 
        }
    }

修改后重启nginx

# 每次更改后重启nginx
cd /usr/sbin
./nginx -s reload

检验访问输入
http://113.131.57.206:7090/remote.txt

服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

然后再去kibanadevtols就会按照我们自定义的词汇分词
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

安装拼音分词器插件(也是要版本号保持一致)

ES如何卸载插件



#进入容器
docker exec -it es7 /bin/bash

#查看安装了哪些插件
./bin/elasticsearch-plugin list

#3、卸载x-pack插件
#a. 卸载x-pack插件
./bin/elasticsearch-plugin remove x-pack

#exit
#重启容器

es安装拼音分词器

1.在线安装
#进入容器
docker exec -it es7 /bin/bash
#安装拼音分词器插件
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.12.1/elasticsearch-analysis-pinyin-7.12.1.zip

#exit
#重启容器

github地址:https://github.com/medcl/elasticsearch-analysis-pinyin

2.通过zip包安装

也可以先下载好https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.12.1/elasticsearch-analysis-pinyin-7.12.1.zip这个包,然后上传到对应的挂载目录,例如/var/lib/docker/volumes/es-plugins/_data
然后重启容器就可以。
可以通过docker inspect es7 查看挂载位置
例如

"Source": "/var/lib/docker/volumes/es-plugins/_data",
"Destination": "/docker/elasticsearch/plugins",

搭建集群教程(可选)

1、为什么要搭建集群?

单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。

  • 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点
  • 单点故障问题:将分片数据在不同节点备份(replica )

ES集群相关概念:

  • 集群(cluster):一组拥有共同的 cluster name 的 节点。

  • 节点(node) :集群中的一个 Elasticearch 实例

  • 分片(shard):索引可以被拆分为不同的部分进行存储,称为分片。在集群环境下,一个索引的不同分片可以拆分到不同的节点中

    解决问题:数据量太大,单点存储量有限的问题。

服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

此处,我们把数据分成3片:shard0、shard1、shard2

  • 主分片(Primary shard):相对于副本分片的定义。

  • 副本分片(Replica shard)每个主分片可以有一个或者多个副本,数据和主分片一样。

数据备份可以保证高可用,但是每个分片备份一份,所需要的节点数量就会翻一倍,成本实在是太高了!

为了在高可用和成本间寻求平衡,我们可以这样做:

  • 首先对数据分片,存储到不同节点
  • 然后对每个分片进行备份,放到对方节点,完成互相备份

这样可以大大减少所需要的服务节点数量,如图,我们以3分片,每个分片备份一份为例:

服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

现在,每个分片都有1个备份,存储在3个节点:

  • node0:保存了分片0和1
  • node1:保存了分片0和2
  • node2:保存了分片1和2

部署es集群

我们会在单机上利用docker容器运行多个es实例来模拟es集群。不过生产环境推荐大家每一台服务节点仅部署一个es的实例。

部署es集群可以直接使用docker-compose来完成,但这要求你的Linux虚拟机至少有4G的内存空间

docker-compose的安装

可以参考:docker-compose的安装

创建es集群

首先编写一个docker-compose.yml文件,内容如下:

version: '2.2'
services:
  es01:
    image: elasticsearch:7.12.1
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: elasticsearch:7.12.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - data02:/usr/share/elasticsearch/data
    ports:
      - 9201:9200
    networks:
      - elastic
  es03:
    image: elasticsearch:7.12.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic
    ports:
      - 9202:9200
volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

  • cluster.name 集群名称
  • discovery.seed_hosts=es02,es03 集群另外两个节点的地址,docker-compose可以用服务名称直接互联
  • cluster.initial_master_nodes=es01,es02,es03 初始化的主节点,主节点是选出来的,这三个都可以参与选举
  • - “ES_JAVA_OPTS=-Xms512m -Xmx512m” 最小内存,最大内存

es运行需要修改一些linux系统权限,修改/etc/sysctl.conf文件

vi /etc/sysctl.conf

添加下面的内容:

vm.max_map_count=262144

#:wq
#保存

然后执行命令,让配置生效:

sysctl -p

通过docker-compose启动集群:
上传docker-compose.yml

# 去到docker-compose.yml所在的目录
docker-compose up -d

部署后,如果docker和docker-compose同时部署导致所有docker容器都访问不了,也可以看里面的解决方案docker-compose部署

监控ES集群

kibana可以监控es集群,不过新版本需要依赖es的x-pack 功能,配置比较复杂。

这里推荐使用cerebro来监控es集群状态,官方网址:https://github.com/lmenezes/cerebro

服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程
解压后的目录如下
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程
进入bin目录点击cerebro.bat即可启动
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程
访问http://localhost:9000 即可进入管理界面:
服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

输入你的elasticsearch的任意节点的地址和端口,点击connect即可:

服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

结束

至此, 安装完成, 也是博主踩坑慢慢安装过来的, 有任何问题也可以留言与博主交流, 希望对你有帮助!文章来源地址https://www.toymoban.com/news/detail-400843.html

到了这里,关于服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux安装搭建配置docker,mysql,nacos,redis哨兵集群,kafka,elasticsearch,kibana,IK分词器,安装Rabbitmq,安装并配置maven

    目录 搭建docker 1.2安装yum工具  1.3更新阿里镜像源 1.4下载docker 1.5关闭防火墙 1.6启动docker 1.7查看docker版本 1.8配置阿里云镜像 1.8.1 创建文件夹 1.8.2在文件夹内新建一个daemon.json文件 1.8.3重载文件 1.9重启docker 2安装MySQL 3安装nacos 3.1拉取nacos镜像并启动 3.2启动nacos命令 3.3命令敲完

    2024年02月03日
    浏览(50)
  • 部署安装ElasticSearch、Kibana、IK

    ​🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工智能开发和前端开发。 🦅主页:@逐梦苍穹 📕所属专栏:微服务 ✈ 您的一键三连,是我创作的最大动力🌹 因为我们还需要部署

    2024年04月12日
    浏览(29)
  • 安装elasticsearch、kibana、IK分词器、扩展IK词典

    后面还会安装 kibana ,这个会提供可视化界面方面学习。 需要注意的是 elasticsearch 和 kibana 版本一定要一样!!! 否则就像这样 1、创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: 2、镜像安装 pull 安装 因为镜像文件比较大,将

    2024年02月02日
    浏览(39)
  • 安装ElasticSearch和插件IK、安装kibana

    ElasticSearch是一个开源的分布式全文搜索引擎,采用Java编写。它可以轻松地处理大规模数据并提供实时搜索和分析能力。它的设计目标是使数据的存储、检索和分析变得简单,可扩展和快速,并且可以垂直和水平扩展。Elasticsearch通常用于构建应用程序、网站和企业搜索引擎。

    2024年02月22日
    浏览(33)
  • Docker 安装 elasticsearch、kibana、ik

    1. 拉取 elasticsearch 镜像  2. 创建 elasticsearch 容器  上述命令执行完成之后,容器创建成功,有的机器需要10分钟左右才能访问成功,请耐心等待 3. 上传ik分词器并解压  将压缩包上传至 /opt 目录下 unzip 没有执行命令下载一个:yum install unzip -y 4. 将ik分词器拷贝到容器内(进入

    2024年02月08日
    浏览(32)
  • Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示

    首先给出自己使用版本的网盘链接:自己的版本7.17.14 链接:https://pan.baidu.com/s/1FSlI9jNf1KRP-OmZlCkEZw 提取码:1234 一般情况下 Elastic Search(ES) 并不单独使用,例如主流的技术组合 ELK(Elasticsearch + Logstash + Kibana ) 1. Elasticsearch下载 下载之前,先看下和 JDK 版本的对应关系,版本

    2024年02月05日
    浏览(40)
  • Docker安装部署Elasticsearch+Kibana+IK分词器

    目前elastic官网推荐使用的两个版本分别是: 8.10.2 7.17.13 我尝试安装8.x版本的,不过似乎由于虚拟机内存大小的原因集群状态总是转为RED无法重置elastic账户的密码,因此我最终选择使用7.x版本的elasticsearch,8.x版本的默认使用https来保证数据的安全性,感兴趣的同学可以自行尝

    2024年02月07日
    浏览(42)
  • Linux Elasticsearch kibana ik分词器 安装部署

    1.1 elasticsearch下载 找到对应版本 点击下载linux版本 1.2 kibana 下载地址 访问地址后 和elasticsearch 下载操作一样 版本下载和elasticsearch 一样的 1.3 ik分词器下载 这个需要访问github 如果访问不通 可以尝试安装浏览器的插件加速一下github即可 分词器版本硬性要求 和 elasticsearch必须一

    2024年02月04日
    浏览(38)
  • window10安装elasticSearch、kibana、ik分词器

    本文章介绍如何在win系统安装es、kibana、ik 由于在Linux也算是比较麻烦,在win安装就可以当做学习使用了。 注:es是使用java开发的所以需要jdk的环境,如果没有安装jdk,请先百度安装好再来操作。 目录 一、下载es 二、安装kibana 三、安装ik分词器 官网下载地址:https://www.elas

    2024年02月05日
    浏览(40)
  • Docker上安装Elasticsearch、Kibana 和IK分词器

    随着大数据和日志管理的兴起,Elasticsearch和Kibana成为了许多开发者和系统管理员首选的工具,我接下来使用的版本是 8.11.0 ,我实测测试过都能成功安装的版本有: 7.6.2 、 8.1.0 、 8.6.0 等。 安装Elasticsearch Docker仓库官网 步骤一:创建Docker网络 为了让Elasticsearch和Kibana能够相互

    2024年01月19日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包