zoukankan      html  css  js  c++  java
  • docker+elasticsearch的安装

    Elasticsearch 基本概念

      node:运行单个ES实例的服务器
      cluster:一个或多个节点组成的集群
      index:索引多个文档的集合
      type:一个 index 可以定义一个或多个类型,将 document 逻辑份组
      document:index 里的每条记录
      field:ES存储最小单元
      shards:ES将index分片
      replicas:index 一份或多份副本


    和关系型数据库对照:

    Elasticsearch​        MySQL
    index                database
    type                 table
    document             row
    field                Column

    安装 


    查询镜像

    [root@0006 elasticsearch]# docker search elasticsearch
    INDEX       NAME                                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    docker.io   docker.io/elasticsearch                         Elasticsearch is a powerful open source se...   3521      [OK]       
    docker.io   docker.io/nshou/elasticsearch-kibana            Elasticsearch-6.5.4 Kibana-6.5.4                96                   [OK]
    docker.io   docker.io/itzg/elasticsearch                    Provides an easily configurable Elasticsea...   67                   [OK]
    docker.io   docker.io/elastichq/elasticsearch-hq            Official Docker image for ElasticHQ: Elast...   26                   [OK]
    docker.io   docker.io/kubernetes/fluentd-elasticsearch      An image that ingests Docker container log...   25                   
    docker.io   docker.io/lmenezes/elasticsearch-kopf           elasticsearch kopf                              17                   [OK]
    docker.io   docker.io/bitnami/elasticsearch                 Bitnami Docker Image for Elasticsearch          16                   [OK]
    docker.io   docker.io/taskrabbit/elasticsearch-dump         Import and export tools for elasticsearch       15                   [OK]
    docker.io   docker.io/esystemstech/elasticsearch            Debian based Elasticsearch packing for Lif...   14                   
    docker.io   docker.io/monsantoco/elasticsearch              ElasticSearch Docker image                      11                   [OK]
    docker.io   docker.io/mesoscloud/elasticsearch              [UNMAINTAINED] Elasticsearch                    9                    [OK]
    docker.io   docker.io/blacktop/elasticsearch                Alpine Linux based Elasticsearch Docker Image   8                    [OK]
    docker.io   docker.io/justwatch/elasticsearch_exporter      Elasticsearch stats exporter for Prometheus     8                    
    docker.io   docker.io/centerforopenscience/elasticsearch    Elasticsearch                                   4                    [OK]
    docker.io   docker.io/barchart/elasticsearch-aws            Elasticsearch AWS node                          3                    
    docker.io   docker.io/forkdelta/fluentd-elasticsearch       fluent/fluentd with fluent-plugin-elastics...   1                    [OK]
    docker.io   docker.io/jetstack/elasticsearch-pet            An elasticsearch image for kubernetes PetSets   1                    [OK]
    docker.io   docker.io/phenompeople/elasticsearch            Elasticsearch is a powerful open source se...   1                    [OK]
    docker.io   docker.io/thingswise/elasticsearch              Elasticsearch + etcd2 peer discovery            1                    [OK]
    docker.io   docker.io/18fgsa/elasticsearch                  Built from https://github.com/docker-libra...   0                    
    docker.io   docker.io/axway/elasticsearch-docker-beat       "Beat" extension to read logs of container...   0                    [OK]
    docker.io   docker.io/driveclutch/infra-elasticsearch-aws   Elasticsearch Docker for use in AWS             0                    [OK]
    docker.io   docker.io/igneoussystems/base-elasticsearch     A base image containing 3p tools for elast...   0                    
    docker.io   docker.io/igneoussystems/base-elasticsearch-5   Base elasticsearch 5.1.1 container              0                    
    docker.io   docker.io/wreulicke/elasticsearch               elasticsearch                                   0                    [OK]

    拉取镜像

    [root@0006 elasticsearch]# docker pull elasticsearch:5.6.12
    Using default tag: latest
    Trying to pull repository docker.io/library/elasticsearch ... 
    latest: Pulling from docker.io/library/elasticsearch
    05d1a5232b46: Pull complete 
    5cee356eda6b: Pull complete 
    89d3385f0fd3: Pull complete 
    65dd87f6620b: Pull complete 
    78a183a01190: Pull complete 
    1a4499c85f97: Pull complete 
    2c9d39b4bfc1: Pull complete 
    1b1cec2222c9: Pull complete 
    59ff4ce9df68: Pull complete 
    1976bc3ee432: Pull complete 
    5af49e8af381: Pull complete 
    42c8b75ff7af: Pull complete 
    7e6902915254: Pull complete 
    99853874fa54: Pull complete 
    596fbad6fcff: Pull complete 
    Digest: sha256:a8081d995ef3443dc6d077093172a5931e02cdb8ffddbf05c67e01d348a9770e
    Status: Downloaded newer image for docker.io/elasticsearch:latest

    运行镜像

    [root@0006 elasticsearch]# docker run -e ES_JAVA_OPTS="-Xms4G -Xmx4G" -d -p 9200:9200 -p 9300:9300 --restart=always -v /elasticsearch/data:/usr/share/elasticsearch/data --name elasticsearch docker.io/elasticsearch:5.6.12
    4862c1bfee14081445a636d7d51c8b65607574d1881e6a41fb02272ad60a546f
    //查看否是已经监听9200和9300
    [root@0006 elasticsearch]# netstat -tnpl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name             
    tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      1318/java           
    tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      644/node            
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      6065/mysqld         
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6688/nginx: master  
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1032/sshd           
    tcp6       0      0 :::9092                 :::*                    LISTEN      3749/docker-proxy-c 
    tcp6       0      0 :::10086                :::*                    LISTEN      85540/docker-proxy- 
    tcp6       0      0 :::6732                 :::*                    LISTEN      1291/dockerd-curren 
    tcp6       0      0 :::9200                 :::*                    LISTEN      104656/docker-proxy 
    tcp6       0      0 :::50000                :::*                    LISTEN      68374/docker-proxy- 
    tcp6       0      0 :::9300                 :::*                    LISTEN      104645/docker-proxy 
    tcp6       0      0 :::22                   :::*                    LISTEN      1032/sshd 

    ES_JAVA_OPTS="-Xms4G -Xmx4G"  //设置只允许4G的jvm运行空间

    检查安装是否成功

    [root@0006 ~]# curl http://172.16.10.383:9200/
    {
      "name" : "gqsc0ge",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "7KPSH7V6R-mBDaIHCetkDg",
      "version" : {
        "number" : "5.6.12",
        "build_hash" : "cfe3d9f",
        "build_date" : "2018-09-10T20:12:43.732Z",
        "build_snapshot" : false,
        "lucene_version" : "6.6.1"
      },
      "tagline" : "You Know, for Search"
    }
    [root@0006 ~]# 

    集群安装

    官网安装:https://www.elastic.co/guide/en/elasticsearch/reference/7.7/docker.html
    REST APIs文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.3/rest-apis.html

    docker run -dit --name es01 --restart=always 
        -e node.name=es01 
        -e cluster.name=es-docker-cluster 
        -e discovery.seed_hosts=es02,es03 
        -e cluster.initial_master_nodes=es01,es02,es03 
        -e bootstrap.memory_lock=true  --ulimit memlock=-1:-1 
        -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
        -v /data/escluster/:/usr/share/elasticsearch/data 
        -p 9200:9200 
        docker.elastic.co/elasticsearch/elasticsearch:7.7.1
        
        
    docker run -dit --name es02 --restart=always 
        -e node.name=es02 
        -e cluster.name=es-docker-cluster 
        -e discovery.seed_hosts=es01,es03 
        -e cluster.initial_master_nodes=es01,es02,es03 
        -e bootstrap.memory_lock=true  --ulimit memlock=-1:-1 
        -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
        -v /data/escluster/:/usr/share/elasticsearch/data 
        -p 9200:9200 
        docker.elastic.co/elasticsearch/elasticsearch:7.7.1
        
        
    docker run -dit --name es03 --restart=always 
        -e node.name=es03 
        -e cluster.name=es-docker-cluster 
        -e discovery.seed_hosts=es01,es02 
        -e cluster.initial_master_nodes=es01,es02,es03 
        -e bootstrap.memory_lock=true  --ulimit memlock=-1:-1 
        -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
        -v /data/escluster/:/usr/share/elasticsearch/data 
        -p 9200:9200 
        docker.elastic.co/elasticsearch/elasticsearch:7.7.1

    提交_cat/nodes请求以查看节点是否已启动并正在运行:

    curl -X GET "localhost:9200/_cat/nodes?v&pretty"

    虚拟内存设置

    在生产环境中在Docker中运行Elasticsearch时,以下要求和建议适用。
    vm.max_map_count至少设置为262144
    该vm.max_map_count内核设置必须至少设置为262144用于生产。

    grep vm.max_map_count /etc/sysctl.conf
    vm.max_map_count=262144
    
    
    sysctl -p

    要将设置配置于实时生效:

    sysctl -w vm.max_map_count=262144

     数据目录访问权限

    默认情况下,Elasticsearch elasticsearch使用uid:gid 作为用户在容器内运行1000:0。
    迁移时确保授予组0对本地目录的gid的访问权限

    chmod g + rwx /data/escluster
    chgrp 0 /data/escluster

    增加nofile和nproc的ulimit
    nofile和nproc的增加的ulimit 必须可用于Elasticsearch容器。验证 Docker守护程序的初始化系统是否将它们设置为可接受的值。

    要检查Docker守护程序默认值是否为ulimits,请运行:

    docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn && ulimit -Hu && ulimit -Su'

    如果需要,请在守护程序中调整它们,或按每个容器覆盖它们。例如,使用时docker run,请设置:

    --ulimit nofile=65535:65535

    禁用交换
    为了性能和节点稳定性,需要禁用交换。

    如果选择该bootstrap.memory_lock:true方法,则还需要memlock:true

  • 相关阅读:
    脏数据
    LeetCode之Sort List
    COCOS2D-X FRAME动画创作随笔
    基于OpenCV性别识别
    Twitter 新一代流处理工具——Heron 该纸币Storm Limitations
    oracle设备
    苏州面对公司发布
    Weblogic监控指标
    mysql TIME_WAIT
    weblogic监控
  • 原文地址:https://www.cnblogs.com/linyouyi/p/10592861.html
Copyright © 2011-2022 走看看