前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【原创】使用Docker搭建Elasticsearch集群服务教程

【原创】使用Docker搭建Elasticsearch集群服务教程

作者头像
java进阶架构师
发布2020-04-01 16:45:19
2.4K0
发布2020-04-01 16:45:19
举报

1.前言

相信你在看这篇文章之前或多或少了解过Elasticsearch相关内容,即便你没听说过,通过接下来的三篇系列文章也会让你对Elasticsearch有一个大概的认识,补全你对这部分内容的缺失或是加强你对这部分知识的一个巩固。

2.系列文章

系列文章包含如下三篇:

  • 分布式搜索引擎Elasticsearch的四种安装方式(本篇)
  • SpringBoot2.x集成分布式搜索引擎Elasticsearch实现文档的增删改查
  • SpringBoot2.x集成分布式搜索引擎Elasticsearch原理分析

3.简介

本文作为系列文章的开篇,主要会介绍Elasticsearch的安装方式,俗话说的好,工欲善其事必先利其器。接下来会以不同的方式来介绍如何安装Elasticsearch,你可以选择自己喜欢的方式在本地进行安装。

4.Elasticsearch安装

4.1 使用安装包的方式进行单机部署

4.1.1 下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.1-darwin-x86_64.tar.gz
4.1.2 解压安装包
tar -xvf elasticsearch-7.4.1-darwin-x86_64.tar.gz
4.1.3 运行
cd elasticsearch-7.4.1/bin
./elasticsearch
4.1.4 访问

Elasticsearch默认访问端口是9200,可以在浏览器中输入http://localhost:9200/进行访问

4.2 使用安装包的方式进行集群部署

使用安装包的方式进行集群部署其实也很简单,你可以使用如下脚本来启动集群服务

#!/bin/bash
case $1 in
"start") {
    /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node0 -E cluster.name=elasticserch -E path.data=node0_data -d
    /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node1 -E cluster.name=elasticserch -E path.data=node1_data -d
    /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node2 -E cluster.name=elasticserch -E path.data=node2_data -d
    /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node3 -E cluster.name=elasticserch -E path.data=node3_data -d
    echo "**********elasticsearch cluster start**********"
};;
esac

⚠️注意:请使用自己的安装路径替换如上脚本中的路径

4.3 使用Docker的方式进行单机部署

4.3.1 搜索镜像
docker search elasticsearch
4.3.2 拉取镜像
docker pull elasticsearch:7.4.1
4.3.3 运行镜像
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.4.1

4.4 使用Docker的方式进行集群部署

4.4.1 创建docker-compose.yml文件

使用docker可以很方便的部署elasticsearch集群服务,只需要创建docker-compose.yml文件

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.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:
      - /Users/pengli/software/docker/elasticsearch/data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.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:
      - /Users/pengli/software/docker/elasticsearch/data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.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:
      - /Users/pengli/software/docker/elasticsearch/data03:/usr/share/elasticsearch/data
    networks:
      - elastic

networks:
  elastic:
    driver: bridge
4.4.2 配置说明
  • image:指定elasticsearch镜像
  • container_name:执行运行容器的名称,可以随意指定
  • volumes:配置卷宗映射关系,比如将本地的/Users/pengli/software/docker/elasticsearch/data03数据目录映射到docker容器的/usr/share/elasticsearch/data,这样可以保证重启容器不会导致elasticsearch数据丢失
4.4.3 常见错误

如果你在使用docker部署elasticsearch集群服务中出现如下错误:java.net.UnknownHostException,那么请调大分配给docker的内存空间至4个G,官网给出的解决方案就是提升docker可用内存至4GB

4.4.4 启动elasticsearch集群服务

在docker-compose.yml目录中执行docker-compose up -d来启动集群服务

4.4.5 关闭elasticsearch集群服务

在docker-compose.yml目录中执行docker-compose down来关闭集群服务

4.4.6 查看集群信息

在浏览器中输入http://localhost:9200/_cat/nodes查看集群服务

5. 结束语

今天带着你学习了使用不同的方式来安装elasticsearch,希望你看完之后可以自己动手实践,掌握这几种安装方式并体验成功的感觉。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java进阶架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.前言
  • 2.系列文章
  • 3.简介
  • 4.Elasticsearch安装
    • 4.1 使用安装包的方式进行单机部署
      • 4.1.1 下载安装包
      • 4.1.2 解压安装包
      • 4.1.3 运行
      • 4.1.4 访问
    • 4.2 使用安装包的方式进行集群部署
      • 4.3 使用Docker的方式进行单机部署
        • 4.3.1 搜索镜像
        • 4.3.2 拉取镜像
        • 4.3.3 运行镜像
      • 4.4 使用Docker的方式进行集群部署
        • 4.4.1 创建docker-compose.yml文件
        • 4.4.2 配置说明
        • 4.4.3 常见错误
        • 4.4.4 启动elasticsearch集群服务
        • 4.4.5 关闭elasticsearch集群服务
        • 4.4.6 查看集群信息
    • 5. 结束语
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档