elasticsearch安装教程(超详细)

news/2024/7/12 2:29:05 标签: jenkins, 运维, java, docker

1.1 创建网络(单点部署)

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

docker network create es-net

1.2.加载镜像

采用的版本为 7.12.1 的 elasticsearch;自己 pull 是非常大的有 1G 左右

百度网盘链接:链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1VbeuFcspnyzP9LBU_YofZw?pwd=fbzs

提取码:fbzs

docker load -i es.tar

1.3 运行

docker run -d \
	--name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
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:端口映射配置

浏览路径为:9200 端口

2.部署 kibana

kibana是elasticsearch 的可视化界面,便于我们学习。

2.1.部署

百度网盘链接:链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1mlDeot_FFdY5tFXuFV7sJQ?pwd=bayq

提取码:bayq

docker load -i es.tar

运行 docker 命令,部署 kibana

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601  \
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

如果有下面,说明成功了

浏览路径为:5601 端口

2.2.DevTools

kibana中提供了一个DevTools界面:

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

3.安装 IK 分词器

3.1.在线安装 ik 插件(方法一)

# 进入容器内部
docker exec -it elasticsearch /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 elasticsearch

3.2.离线安装 ik 插件(方法二)

1.查询数据卷目录
docker volume inspect es-plugins

显示结果:

[
    {
        "CreatedAt": "2022-05-06T10:06:34+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
        "Name": "es-plugins",
        "Options": null,
        "Scope": "local"
    }
]

百度网盘:链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1lq3Pk0ScKmlo40n45Oj1ag?pwd=7fym

提取码:7fym

cd /var/lib/docker/volumes/es-plugins/_data
2.解压分词器安装包

3. 重启容器
docker restart es
docker logs -f es
4.测试

IK分词器包含两种模式:

  • ik_smart:最少切分
  • ik_max_word:最细切分

4. 扩展词词典

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 *** 添加扩展词典-->
        <entry key="ext_dict">ext.dic</entry>
</properties>

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

重启elasticsearch

docker restart es

# 查看 日志
docker logs -f elasticsearch

日志中已经成功加载ext.dic配置文件

5)测试效果:

注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑

5. 停用词词典

在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。

IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。

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

在 stopword.dic 添加停用词

重启elasticsearch

# 重启服务
docker restart elasticsearch
docker restart kibana

# 查看 日志
docker logs -f elasticsearch

日志中已经成功加载stopword.dic配置文件

测试效果:

注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑

6.部署es集群

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

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/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
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/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
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/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
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

Run docker-compose to bring up the cluster:

docker-compose up


http://www.niftyadmin.cn/n/5288949.html

相关文章

张驰咨询:深入探讨DFSS优化设计、提升质量的有效路径

DFSS&#xff08;Design for Six Sigma&#xff0c;六西格玛设计&#xff09;是一种基于数据和客户导向的持续改进方法&#xff0c;旨在帮助企业提高产品质量、降低成本、增加客户满意度。那么&#xff0c;在企业运营的过程中&#xff0c;什么时候需要使用DFSS呢&#xff1f;本…

关于表格太大了jupyter无法单次处理的问题

记录下自己的心路历程…耗时耗精力 我用的数据库单个表格就很大&#xff0c;一个表格有30多G&#xff0c;jupyter无法处理这么大的表格&#xff0c;会直接把电脑的进程全部结束掉&#xff0c;结束掉要是能运行成功倒也行啊&#xff0c;然鹅…给我报错说处理不了&#xff0c;罢工…

使用 Python 和 PyQt 实现路由算法模拟器

项目地址 GitHub - 944613709/Shortest-Path-Simulation: 网络拓扑图最短路径模拟 引言 在现代网络技术中&#xff0c;路由算法扮演着至关重要的角色。它们决定了数据包在网络中的传输路径&#xff0c;从而影响整个网络的效率和性能。为了更好地理解这些算法的工作原理&…

Servlet见解2

4 创建servlet的三种方式 4.1 实现Servlet接口的方式 import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException;WebServlet("/test1") public class Servlet1 implements Servlet {Overridepublic void init(ServletConf…

TCP、UDP 和 HTTP 的区别

TCP/IP 协议栈主要分为四层 : 应⽤层、传输层、⽹络层、数据链路层 , 每层都有相应的协 议 IP &#xff1a;⽹络层协议&#xff1b;&#xff08;类似于⾼速公路&#xff09; TCP 和 UDP &#xff1a;传输层协议&#xff1b;&#xff08;类似于卡⻋&#xff09; HTTP&…

R语言【base】——readline() 从终端读取一行(交互式使用时)。

Package base version 4.3.2 Parameter readline(prompt "") 参数【prompt】&#xff1a;提示用户输入时打印的字符串。通常以空格" "结束。 提示字符串将被截断到允许的最大长度&#xff0c;通常为 256 个字符&#xff08;但可在源代码中修改&#xf…

Kubernetes(k8s)部署DolphinScheduler

1.环境准备 1.1 集群规划 本次安装环境为&#xff1a;3台k8s现有的mysql数据库nfs 1.2 下载及介绍 DolphinScheduler-3.2.0官网&#xff1a;https://dolphinscheduler.apache.org/zh-cn/download/3.2.0 官网安装文档&#xff1a;https://dolphinscheduler.apache.org/zh-cn…

docker 将本地镜像推送到私有库

文章目录 下载镜像Docker Registry运行私有库Registry&#xff0c;相当于本地有个私有Docker hub打开个ubantu进行网络配置提交形成一个新的镜像curl 查看私服镜像修改符合私服规范的Tag修改配置文件使之支持httppush 到私服库pull 在拉到本地 下载镜像Docker Registry docker…