一、安装前准备工作

1、下载elastic search(tar包) https://www.elastic.co/downloads

2、下载jdk1.8(website

二、部署

1、创建对应的目录并解压

  1. cd ~
  2. mkdir /app
  3. tar xf elasticsearch-6.2.3.tar.gz -C /app/
  4. mkdir /usr/java
  5. tar xf jdk-8u161-linux-x64.tar.gz -C /usr/java/
  6. ln -s /usr/java/jdk1.8.0_161 /usr/java/jdk
  7. echo 'PATH=/usr/java/jdk/bin/:$PATH' >/etc/profile.d/jdk.sh
  8. source /etc/profile.d/jdk.sh
  9. groupadd elasticsearch
  10. useradd -s /sbin/nologin -g elasticsearch elasticsearch

三、配置文件

1、elasticsearch主配置文件

  1. vim /app/elastic/config/elasticsearch.yml
  2.  
  3. ---------------------------------- Cluster -----------------------------------
  4. cluster.name: mytestelastic #各节点当中判断是否在同一个集群就是由该项来判定的,没有其他的配置
  5.  
  6. node.name: es105 #节点名称
  7. node.attr.rack: r1 #机架感知,当开启该项时,会按照机架不同的分布来进行副本的均衡法则来分开存放。(机架出现故障会导致整个机架内的server无法提供服务,例如多个server连接的同一个交换机,可以叫做同一个机架)
  8.  
  9. path.data: /data/esdata #数据文件路径
  10. path.logs: /log/eslog #日志文件路径
  11. path.plugins: /path/to/plugins #插件路径
  12. bootstrap.memory_lock: true #在程序启动的时候先去获取足够大的内存,其目的是为了锁住内存。防止在内存不足的情况下,将ES的内存数据交换到磁盘上。
  13. network.host: 172.18.30.105 #配置服务地址
  14. http.port: 9200 #对外服务端口
  15. discovery.zen.ping.unicast.hosts: ['172.18.30.105','172.18.30.106','172.18.30.110']
  16. #使用单播发现集群节点,quorum机制,必须为奇数个节点。
  17.  
  18. discovery.zen.minimum_master_nodes: 2 #定义可工作的法定票数
  19. gateway.recover_after_nodes: 2 #这个设置主要防止不必要的数据处理,比如一个集群全部重启,然后有一个机器起的比较慢,然后机器就会组成集群,选出master,然后从备份中恢复出故障集群的数据。集群此时恢复正常。然后起的慢的机器又重启成功了,又会把数据同步到这台机器上并删除冗余数据。这项配置决定直到第n个节点可用才可以进行恢复操作
  20.  
  21. gateway.expected_nodes: 10
  22. gateway.recover_after_time: 5m 这个配置一个是恢复的时间;这三项要求首先等待n个节点恢复,然后等待5分钟或者10个节点已经加入了集群就开始数据恢复

2、jvm配置

  1. vim /app/elastic/config/jvm.options
  2.  
  3. -Xms2g #初始化堆内存大小
  4. -Xmx2g #对内存总大小
  5.  
  6. #ES初始的内存2g是不够的,需要加大,根据实际情况而定。

3、启动elastic search

  1. su - elasticsearch #禁止root用户启动elasticsearch
  2. cd /app/elastic/bin
  3. ./elasticsearch -d #-d表示启动守护进程

四、内核参数的配置

  1. cat >> /etc/security/limits.conf << EOF
  2. * soft nofile 102400
  3. * hard nofile 102400
  4. * soft nproc 40960
  5. * hard nproc 40960
  6. elasticsearch soft memlock unlimited
  7. elasticsearch hard memlock unlimited
  8. EOF
  9. ulimit -n 102400 #设置文件打开数,并马上生效,、
  10. echo 262144 >/proc/sys/vm/max_map_count

五、test

  1. curl http://172.18.30.105:9200/
  2.  
  3. {
  4. "name" : "test1",
  5. "cluster_name" : "mytestelastic",
  6. "cluster_uuid" : "8ZSsWOFARoOvFoDurRt_jw",
  7. "version" : {
  8. "number" : "6.2.3",
  9. "build_hash" : "c59ff00",
  10. "build_date" : "2018-03-13T10:06:29.741383Z",
  11. "build_snapshot" : false,
  12. "lucene_version" : "7.2.1",
  13. "minimum_wire_compatibility_version" : "5.6.0",
  14. "minimum_index_compatibility_version" : "5.0.0"
  15. },
  16. "tagline" : "You Know, for Search"
  17. }

注意:ES集群有几个节点就curl几次,可以验证集群中通信是否畅通。

文档更新时间: 2019-06-14 15:50   作者:张尚