一.linux环境

 1、增大用户进程数和文件句柄数

  (1)vim /etc/security/limits.d/90-nproc.conf  

            * soft nproc 30499

            root soft nproc unlimited

       (2)vim /etc/security/limits.conf

             * soft noproc 30499 
            * hard noproc 30499
            * soft nofile 65536 
            * hard nofile 65536
            * soft memlock unlimited
            * hard memlock unlimited

   2、安装jdk

         rpm -ivh jdk-8u74-linux-x64.rpm (选择稳定版本)

         安装后,查看是否成功 java -version   

java version "1.8.0_74"

Java(TM) SE Runtime Environment (build 1.8.0_74-b02)

Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

  如果出现以上,则表示安装成功;如果原本就按照了,则忽略此步骤;建议JDK版本在8以上。

二、安装elasticsearch

  1、解压缩

   压缩前先确认下当前环境下是否可以创建新用户,如果不行,则执行以下命令再进行解压:

   

chattr -i /etc/passwd

chattr -i /etc/shadow

chattr -i /etc/group

chattr -i /etc/gshadow

rpm -ivh elasticsearch-x.x.x.rpm


创建完成后,为了防止误操作,则可以关闭:

chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/group

chattr +i /etc/gshadow

  rpm安装时,会自动创建elasticsearch用户和组。

2、配置es内存大小

     vim /usr/share/elasticsearch/bin/elasticsearch

     ES_HEAP_SIZE=31g 

     根据elasticsearch官网推荐,单实例不要超过32G,详情可以查看官网.

      

3、jvm的GC优化

     vim /usr/share/elasticsearch/bin/elasticsearch.in.sh

     

# Add gc options. ES_GC_OPTS is unsupported, forinternal testing

if [ "x$ES_GC_OPTS"= "x" ]; then

   ES_GC_OPTS="$ES_GC_OPTS -XX:+UseParNewGC"

  ES_GC_OPTS="$ES_GC_OPTS -XX:+UseConcMarkSweepGC"

  ES_GC_OPTS="$ES_GC_OPTS-XX:CMSInitiatingOccupancyFraction=75"

   ES_GC_OPTS="$ES_GC_OPTS -XX:+UseCMSInitiatingOccupancyOnly"

 Fi

注释掉上面四行ES_GC_OPTS参数,添加以下参数:

JAVA_OPTS="$JAVA_OPTS-XX:+UseG1GC" 

JAVA_OPTS="$JAVA_OPTS-XX:MaxGCPauseMillis=200"

以上是选用G1来作为GC策略,为了防止因GC过久导致节点不稳,则可以采用G1来作为es的GC策略,默认GC策略是CMS.


4、主配置

  vim /etc/elasticsearch/elasticsearch.yml

  

cluster.name: xxx  #集群的cluster.name各个节点中配置的名称一致.

node.name: xxx


path.data: /data1/,/data2/,/data3/  #多磁盘利用,创建的数据盘用户和用户组为elasticsearch

bootstrap.mlockall: true


network.host: xx.xx.xx.xx #节点ip,建议使用内网IP

http.port: 9001  #建议实际环境修改端口

transport.tcp.port: 9002 #建议实际环境修改端口


discovery.zen.ping.unicast.hosts: ["x1","x2", "x3"] 

discovery.zen.minimum_master_nodes: 2 # 根据节点配置,nodes num / 2 +1

discovery.zen.ping.multicast.enabled: false

discovery.zen.ping.timeout: 30s

index.number_of_shards: 3  #分片数

index.number_of_replicas: 1 #备份数

index.refresh_interval: 30s  #刷新时间,一般建议增大此时间提高索引效率.

5、服务

 (1)启动服务

   service elasticsearch start

 (2)停止服务

   service elasticsearch stop

 (3)重启服务

   service elasticsearch restart

 (4)查看服务状态

   service elasticsearch status

在各个节点启动服务后,elasticsearch集群部署完成。

为了查看集群的节点cpu,内存,磁盘容量等信息,则可以安装相应的插件,比如mavel,head,bigdesk等插件。