docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 借助docker,仅需一行命令就能创建elasticsearch集群,并且head插件和ik分词器也都已经装好了

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos
  • 搭建一个elasticsearch6.5.0集群环境,再把elasticsearch-head插件和ik分词器装好,在docker环境下完成这些工作需要多久?
  • 答案是:只需下面这一行命令:
wget https://raw.githubusercontent.com/zq2599/blog_demos/master/elasticsearch_docker_compose/docker-compose.yml && \
docker-compose up -d
  • 接下来就试试这一行命令吧;

环境信息

  1. 操作系统:CentOS 7.6
  2. docker:17.03.2-ce
  3. docker-compose:version 1.23.2
  4. elasticsearch:这里选用的是6.5.0版本的elasticsearch,因为目前ik分词器官方最高只支持到6.5.0版本

验证

  • 在上述环境下,输入上面提到的那行命令,即可创建elasticsearch6.5.0集群环境,如下:
[root@hedy 003]# wget https://raw.githubusercontent.com/zq2599/blog_demos/master/elasticsearch_docker_compose/docker-compose.yml && \
> docker-compose up -d
--2019-01-27 20:38:10--  https://raw.githubusercontent.com/zq2599/blog_demos/master/elasticsearch_docker_compose/docker-compose.yml
正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.24.133
正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|151.101.24.133|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1227 (1.2K) [text/plain]
正在保存至: “docker-compose.yml”

100%[=======================================================================================================================================================================>] 1,227       --.-K/s 用时 0s      

2019-01-27 20:38:11 (61.9 MB/s) - 已保存 “docker-compose.yml” [1227/1227])

Creating network "003_esnet" with the default driver
Creating head           ... done
Creating elasticsearch2 ... done
Creating elasticsearch  ... done
  • 假设docker所在电脑的IP地址是192.168.1.101,如下图,浏览器访问此地址可以查看es信息:http://192.168.1.101:9200

在这里插入图片描述

在这里插入图片描述

  • 执行以下命令来创建一个索引:
curl -X PUT http://192.168.1.101:9200/test001
  • 执行以下命令验证ik分词器效果:
curl -X POST \
'http://192.168.1.101:9200/test001/_analyze?pretty=true' \
-H 'Content-Type: application/json' \
-d '{"text":"我们是软件工程师","tokenizer":"ik_smart"}'
  • 收到的响应如下,可见ik分词器已经生效:
{
  "tokens" : [
    {
      "token" : "我们",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "是",
      "start_offset" : 2,
      "end_offset" : 3,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "软件",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "工程师",
      "start_offset" : 5,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 3
    }
  ]
}
  • 验证完毕,集群、head插件、ik分词器都是正常的;

一行命令如何能实现上述功能

  • 首先来看看docker-compose.yml文件的内容,这里面决定了整个构成整个功能的容器:
version: '2.2'
services:
  elasticsearch:
    image: bolingcavalry/elasticsearch-with-ik:6.5.0
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  elasticsearch2:
    image: bolingcavalry/elasticsearch-with-ik:6.5.0
    container_name: elasticsearch2
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata2:/usr/share/elasticsearch/data
    networks:
      - esnet
  head:
    image: bolingcavalry/elasticsearch-head:6
    container_name: head
    ports:
      - 9100:9100
    networks:
      - esnet
volumes:
  esdata1:
    driver: local
  esdata2:
    driver: local

networks:
  esnet:

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
29天前
|
安全 Docker 容器
|
29天前
|
网络安全 数据安全/隐私保护 Docker
|
12天前
|
存储 监控 安全
Elasticsearch 集群
【11月更文挑战第3天】
90 54
|
4天前
|
缓存 监控 Java
Elasticsearch集群JVM调优
Elasticsearch集群JVM调优
17 5
|
28天前
|
存储 监控 安全
|
8天前
|
监控 API 索引
Elasticsearch集群健康检查
【11月更文挑战第4天】
23 3
|
28天前
|
存储 关系型数据库 MySQL
|
1月前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
886 1
|
1月前
|
存储 缓存 监控
深入解析:Elasticsearch集群性能调优策略与最佳实践
【10月更文挑战第8天】Elasticsearch 是一个分布式的、基于 RESTful 风格的搜索和数据分析引擎,它能够快速地存储、搜索和分析大量数据。随着企业对实时数据处理需求的增长,Elasticsearch 被广泛应用于日志分析、全文搜索、安全信息和事件管理(SIEM)等领域。然而,为了确保 Elasticsearch 集群能够高效运行并满足业务需求,需要进行一系列的性能调优工作。
89 3
|
1月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
135 0
下一篇
无影云桌面