使用Docker-compose 搭建 Elasticsearch 集群服务
阅读原文时间:2023年08月24日阅读:1

Elasticsearch是一个开源的分布式搜索和分析引擎,用于处理大规模数据集。它构建在Apache Lucene搜索引擎库之上,提供了强大的全文搜索、实时数据分析和可扩展性。


以下是Elasticsearch的一些关键特点和常见使用场景:

1、强大的搜索功能:Elasticsearch提供了全文搜索、近实时搜索和复杂的查询功能。它支持全文索引和检索,并且可以进行模糊匹配、词条搜索、短语搜索等各种高级搜索操作。

2、实时数据分析:Elasticsearch具有实时数据索引和分析的能力。它可以处理大规模的数据集,支持聚合操作、数据可视化和复杂的数据分析任务。它还可以与Kibana等工具集成,实现强大的数据可视化和监控功能。

3、分布式架构:Elasticsearch是一个分布式系统,可以水平扩展以处理大规模数据。它使用分片和复制机制实现数据的高可用性和负载均衡。这使得它可以在大型集群中存储和处理海量数据,并实现快速的搜索和分析。

4、多种数据类型支持:Elasticsearch支持多种数据类型的索引和查询,包括文本、数值、地理位置等。它还提供了丰富的分析器和过滤器,用于处理各种语言和特殊数据类型的索引和搜索需求。

5、日志和监控:Elasticsearch被广泛用于处理日志数据和实时监控。它可以接收、索引和搜索大量的日志数据,并提供强大的实时监控和报警功能。通过与Logstash和Beats等工具的集成,可以构建完整的日志处理和分析解决方案。

6、搜索引擎和电子商务:Elasticsearch在搜索引擎和电子商务领域有广泛的应用。它可以实现产品搜索、推荐系统、相关性排序等功能,提供快速和准确的搜索结果。



部署 Elasticsearch Docker-Compose.yml 文件内容

version: '2.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.scripting.exception_for_missing_value=true"
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - discovery.zen.minimum_master_nodes=2
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet

  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
    container_name: elasticsearch2
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.scripting.exception_for_missing_value=true"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - discovery.zen.minimum_master_nodes=2
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata2:/usr/share/elasticsearch/data
    networks:
      - esnet

  elasticsearch3:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2
    container_name: elasticsearch3
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.scripting.exception_for_missing_value=true"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - discovery.zen.minimum_master_nodes=2
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata3:/usr/share/elasticsearch/data
    networks:
      - esnet

  kibana:
    image: 'docker.elastic.co/kibana/kibana:6.4.2'
    container_name: kibana
    environment:
      SERVER_NAME: kibana.local
      ELASTICSEARCH_URL: http://elasticsearch:9200
    ports:
      - '5601:5601'
    networks:
      - esnet

  headPlugin:
    image: 'mobz/elasticsearch-head:5'
    container_name: head
    ports:
      - '9100:9100'
    networks:
      - esnet

volumes:
  esdata1:
    driver: local
  esdata2:
    driver: local
  esdata3:
    driver: local    

networks:
  esnet:

完成上述操作后,您通过docker-compose up -d 就可以开启您的 ES使用之旅了。