使用Docker-compose 搭建 Elasticsearch 集群服务

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


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

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

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

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

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

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

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


总的来说,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使用之旅了。

参考

posted @ 2023-05-17 15:33  上海志彦  阅读(334)  评论(0编辑  收藏  举报