• 在Linux中,使用Docker,安装es和kibana


    1.部署单点es

    1.1.创建网络

    因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:

    1. # 创建一个网络:es-net
    2. docker network create es-net
    3. # 查看本机的网络
    4. docker network ls
    5. # 删除一个网络:es-net
    6. docker network rm es-net

    1.2.加载elasticsearch 和 kibana 镜像

    如何拉取镜像

    http://t.csdn.cn/tK6zk

    1.3.运行

    运行docker命令,部署单点es:

    1. docker run -d \
    2. --name es \
    3. -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    4. -e "discovery.type=single-node" \
    5. -e TZ=Asia/Shanghai \
    6. -v es-data:/usr/share/elasticsearch/data \
    7. -v es-plugins:/usr/share/elasticsearch/plugins \
    8. --privileged \
    9. --network es-net \
    10. -p 9200:9200 \
    11. -p 9300:9300 \
    12. elasticsearch:7.12.1

    命令解释:

    • -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:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录

    • -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录

    • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录

    • --privileged:授予逻辑卷访问权

    • --network es-net :加入一个名为es-net的网络中

    • -p 9200:9200:端口映射配置

    在浏览器中输入:192.168.177.132:9200 即可看到elasticsearch的响应结果,看到以下结果表示es安装成功:

     2.部署kibana

    注:在部署kibana之前要确保es已经启动(可以看到json界面)

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

    2.1.部署

    运行docker命令,部署kibana

    1. docker run -d \
    2. --name kibana \
    3. -e ELASTICSEARCH_HOSTS=http://es:9200 \
    4. --network=es-net \
    5. -p 5601:5601 \
    6. kibana:7.12.1
    • --network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中

    • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch

    • -p 5601:5601:端口映射配置

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

    docker logs -f kibana

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

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

     3.安装IK分词器

    3.1.在线安装ik插件

    1. # 进入容器内部
    2. docker exec -it elasticsearch /bin/bash
    3. # 在线下载并安装
    4. ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
    5. #退出
    6. exit
    7. #重启容器
    8. docker restart elasticsearch

    3.2.离线安装ik插件

    1)查看数据卷目录

    安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:

    docker volume inspect es-plugins

    显示结果:

     说明plugins目录被挂载到了:/var/lib/docker/volumes/es-plugins/_data这个目录中。

    2)上传到es容器的插件数据卷中

    也就是/var/lib/docker/volumes/es-plugins/_data

     3)重启容器

    1. # 4、重启容器
    2. docker restart es
    1. # 查看es日志
    2. docker logs -f es

    4)测试:

    IK分词器包含两种模式:

    • ik_smart:最少切分

    • ik_max_word:最细切分

    进入到以下界面,进行测试:

      

    在左侧输入,右侧显示结果: 

    1. GET /_analyze
    2. {
    3. "analyzer": "ik_max_word",
    4. "text": "中国人"
    5. }

    1. GET /_analyze
    2. {
    3. "analyzer": "ik_smart",
    4. "text": "中国人"
    5. }

     3.3 扩展词词典

    1)打开IK分词器config目录:

     2)在IKAnalyzer.cfg.xml配置文件内容添加:

    1. "1.0" encoding="UTF-8"?>
    2. properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    3. <properties>
    4. <comment>IK Analyzer 扩展配置comment>
    5. <entry key="ext_dict">ext.dicentry>
    6. properties>

    3)新建一个 ext.dic,可以参考config目录下复制一个配置文件进行修改

    奥力给

    4)重启elasticsearch

    1. docker restart es
    2. # 查看 日志
    3. docker logs -f elasticsearch

    5)测试效果:

    1. GET /_analyze
    2. {
    3. "analyzer": "ik_max_word",
    4. "text": "加油,奥里给!"
    5. }

     3.4 停用词词典

     1)IKAnalyzer.cfg.xml配置文件内容添加:

    1. "1.0" encoding="UTF-8"?>
    2. properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    3. <properties>
    4. <comment>IK Analyzer 扩展配置comment>
    5. <entry key="ext_dict">ext.dicentry>
    6. <entry key="ext_stopwords">stopword.dicentry>
    7. properties>

     2)在 stopword.dic 添加停用词

     

     3)重启elasticsearch

    1. # 重启服务
    2. docker restart elasticsearch
    3. docker restart kibana
    4. # 查看 日志
    5. docker logs -f elasticsearch

    5)测试效果:

    1. GET /_analyze
    2. {
    3. "analyzer": "ik_max_word",
    4. "text": "加油,奥里给!"
    5. }

  • 相关阅读:
    企业级优化
    CenterPoint 工程复现
    SpringMVC中的JSR303与拦截器的使用
    centos在docker中搭建靶场
    华为机试 - 处理器问题
    反欺诈模型常用开发工具
    线段树——维护序列(两个懒标记的情况)
    项目管理中,如何避免项目延期呢?
    Mybatis中延迟加载~
    想要避免After Effects渲染失败的问题,5个小技巧必看
  • 原文地址:https://blog.csdn.net/LINING_GG/article/details/128170665