文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用Docker Compose搭建部署ElasticSearch

2023-06-29 05:07

关注

本篇内容主要讲解“如何使用Docker Compose搭建部署ElasticSearch”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Docker Compose搭建部署ElasticSearch”吧!

什么是 Elasticsearch?

  Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。Elasticsearch 在Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是适用于数据采集、充实、存储、分析和可视化的一组开源工具。人们通常将Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为Beats,可用来向 Elasticsearch 发送数据。

Elasticsearch 的用途是什么?

Elasticsearch 在速度和可扩展性方面都表现出色,而且还能够索引多种类型的内容,这意味着其可用于多种用例:

Elasticsearch 的工作原理是什么?

  原始数据会从多个来源(包括日志、系统指标和网络应用程序)输入到 Elasticsearch 中。数据采集指在 Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在 Kibana 中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对 Elastic Stack 进行管理。 

Elasticsearch 索引是什么?

  Elasticsearch 索引指相互关联的文档集合。Elasticsearch 会以 JSON 文档的形式存储数据。每个文档都会在一组键(字段或属性的名称)和它们对应的值(字符串、数字、布尔值、日期、数值组、地理位置或其他类型的数据)之间建立联系。

  Elasticsearch 使用的是一种名为倒排索引的数据结构,这一结构的设计可以允许十分快速地进行全文本搜索。倒排索引会列出在所有文档中出现的每个特有词汇,并且可以找到包含每个词汇的全部文档。

  在索引过程中,Elasticsearch 会存储文档并构建倒排索引,这样用户便可以近实时地对文档数据进行搜索。索引过程是在索引 API 中启动的,通过此API 您既可向特定索引中添加 JSON 文档,也可更改特定索引中的 JSON 文档。

说明

由于我本机配置较低,无法开启多台虚拟机,ES的集群需要用到不同的ip,故而只搭建单机,不做集群。

一、目录准备

mkdir /docker/esmkdir /docker/es/datamkdir /docker/es/configmkdir /docker/es/plugins

二、es配置准备

cd /docker/esvi elasticsearch.yml

使用以下配置:

# 集群名称cluster.name: elasticsearch-cluster# 节点名称node.name: es-node-1# 绑定host,0.0.0.0代表当前节点的ipnetwork.host: 0.0.0.0# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip)network.publish_host: 192.168.200.135# 设置对外服务的http端口,默认为9200http.port: 9200# 设置节点间交互的tcp端口,默认是9300transport.tcp.port: 9300# 是否支持跨域,默认为falsehttp.cors.enabled: true# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/http.cors.allow-origin: "*"# 表示这个节点是否可以充当主节点node.master: true# 是否充当数据节点node.data: true# 所有主从节点ip:port#discovery.seed_hosts: ["192.168.200.135:9300"]  #本地只有一个节点,无法正常启动,先注释# 这个参数决定了在选主过程中需要 有多少个节点通信  预防脑裂 N/2+1discovery.zen.minimum_master_nodes: 1#初始化主节点#cluster.initial_master_nodes: ["es-node-1"]  #本地只有一个节点,无法正常启动,先注释

三、准备docker-compose.yml

vi docker-compose.yml

内容如下:

version: '3'services: elasticsearch:  image: elasticsearch:6.8.13  restart: always    hostname: es1  container_name: es-single  volumes:   - /docker/es/data:/usr/share/elasticsearch/data   - /docker/es/plugins:/usr/share/elasticsearch/plugins   - /docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  environment:   - "ES_JAVA_OPTS=-Xms512m -Xmx512m"   - discovery.type=single-node  ports:    - '9200:9200'     #java、集群通信端口    - '9300:9300'     #http通信端口  privileged: true    #环境变量

四、启动容器

docker-compose up -d

如何使用Docker Compose搭建部署ElasticSearch

五、查看

docker-compose ps

如何使用Docker Compose搭建部署ElasticSearch

如果启动是吧,可以使用docker container logs 容器id/es-single logs 查看启动日志

如果出现启动日志中出现java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes,需要给data目录设置权限 chmod 777 /docker/es/data

到此,相信大家对“如何使用Docker Compose搭建部署ElasticSearch”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯