安装Elasticsearch

Elasticsearch安装

  • 通过Docker完成安装社区版本
1
2
3
4
5
6
7
8
9
10
11
12
docker run --name es_1 \
--restart=always \
-v /etc/localtime:/etc/localtime:ro \
-p 9200:9200 \
--mount source=esdata1,target=/usr/share/elasticsearch/data/ \
--ulimit nofile=65536:131072 \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e node.name=elastic-01 \
-e cluster.name=elastic-cluster \
-e transport.host=0.0.0.0 \
-e bootstrap.system_call_filter=false \
docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4
  • 常规安装方法
  1. 安装JDK8版本。

  2. Linux平台需要先创建用户,在指定用户权限下运行ES程序。

  3. 修改elasticsearch.yml配置文件。

    Cluster

    1. cluster.name 集群名称,如果有多个集群,那么每个集群名就得是唯一的。
    

    Node

    1. node.name 节点名称
    
    2.node.attr.rack 该节点自定义信息。
    

    Paths

    1. path.data 存储数据的目录
    
    2. path.logs 存储日志的目录
    

    Memory

    1. bootstrap.memory_lock 是否使用交换内存
    

    Network

    1. network.host: 0.0.0.0 绑定的地址
    
    2. http.port: 9200 绑定的端口
    

    Discovery

    1. discovery.zen.ping.unicast.hosts: ["host1", "host2"] 设置集群中master集群初始化列表,这个数组里的机器将被自动发现加入集群
    
    2. discovery.zen.minimum_master_nodes 最小集群数量= total / 2 + 1
    

    Gateway

    1. gateway.recover_after_nodes 控制集群在达到多少个节点之后才会开始数据恢复,通过这个设置可以避免集群自动相互发现的初期,shard分片不全的问题。
    

ES安装常见问题

  • 提示OpenJDK内存分配失败,如下图:

    解决方法:通过调整ES的JVM参数,根据机器配置适当调整大小。

  • 提示最大虚拟内存不足,如下图

    解决办法:通过调整机器的最大内存配置文件

    1
    2
    3
    4
    vim /etc/sysctl.conf
    ##修改
    vm.max_map_cout=262144
    Sysctl -p /etc/sysctl.conf
  • 其它问题

    1. system call filters failed to install,出现这个问题的时候。-Ebootstrap.system_call_filter=false

    2. max file descriptors [4096] for elasticsearch process is too low,出现这个说明,系统打开的文件描述符太少。

    3. OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N 提示运行的容器虚拟机CPU数量只有1个,调整即可。

    4. Docker Container exited with code 137,这个错误发生在分配给容器的内存不足导致的错误,调整机器配置。

    5. Failed to Setup IP tables: Unable to enable SKIP DNAT rule: 发生这个错误,重启docker容器即可。