Docker安装Elesticsearch7详细步骤

Docker安装Elesticsearch7详细步骤_第1张图片

1、创建安装目录

mkdir -p /usr/local/docker/es-docker

2、配置虚拟内存

如果不配置,后面启动es会报错。

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

配置如下

vi /etc/sysctl.conf
vm.max_map_count=262144

最后执行以下命令使其生效

sysctl -p

3、配置docker-compose.yml

内容如下:

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.12
    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:
      - data01:/usr/local/docker/es-docker/data/data01
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.12
    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:
      - data02:/usr/local/docker/es-docker/data/data02
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.12
    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:
      - data03:/usr/local/docker/es-docker/data/data03
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

4、安装

docker-compose -f docker-compose.yml up -d

5、Elasticsearch新特性

Elasticsearch 7 于2019年11月发布,对比6.x,7.x 版本的特性变化主要有:
1. 集群连接变化:TransportClient 被废弃,7.x 的 java 代码,只能使用 restclient。对于 java 编程,建议采用 High-level-rest-client 的方式操作 ES 集群。
2. ES 数据存储结构变化:去除了 Type,es6时,官方就提到了 es7会删除 type,并且 es6时已经规定每一个 index 只能有一个 type。在 es7中使用默认的_doc 作为 type,官方说在8.x版本会彻底移除 type。同时,api 请求方式也发送变化,如获得某索引的某 ID 的文档的请求方式为:GET index/_doc/id,其中index和id为具体的值。
3. High-level REST client 改变:已删除接受 Header 参数的 API 方法;Cluster Health API 默认为集群级别。
4. ES 程序包默认打包 JDK:7.x 版本的程序包大小突然变为300MB+,对比6.x,包大了200MB+,正是 JDK 的大小。
5. 默认配置变化:默认节点名称为主机名,默认分片数改为1,不再是5。
6. 查询相关性速度优化:采用 Weak-AND 算法。核心原理是取 TOP N 结果集,估算命中记录数。一般情况下,在计算文本相关性时,会通过倒排索引的方式进行查询,通过倒排索引已经要比全量遍历节约大量时间,但有时候仍然很慢。这是因为很多时候我们其实只想要 top n 个结果,一些结果明显较差的也进行了复杂的相关性计算,而 Weak-AND 算法通过计算每个词的贡献上限来估计文档的相关性上限,从而建立一个阈值对倒排中的结果进行减枝,从而得到提速的效果。
7. 间隔查询(Intervals queries):在某些搜索用例中,例如法律和专利搜索,引入了查找单词或短语彼此相距一定距离的记录的需要。Elasticsearch 7.0中的间隔查询引入了一种构建此类查询的全新方式,与之前的方法(跨度查询 span queries)相比,使用和定义更加简单。与跨度查询相比,间隔查询对边缘情况的适应性更强。
8. 引入新的集群协调子系统。
这些新特性使得 Elasticsearch 7 在性能、可扩展性和易用性方面有了显著的提升,为用户提供了更好的搜索体验。

Docker安装Elesticsearch7详细步骤_第2张图片

你可能感兴趣的:(docker,elasticsearch,运维)