1.elasticsearch集群部署

Posted timor19

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.elasticsearch集群部署相关的知识,希望对你有一定的参考价值。

1.limit的修改

vim /etc/security/limits.conf

具体内容为:

*  soft   nofile    65536

*  hard   nofile    65536

*  soft noproc 2048

*  hard noproc 4096

* - memlock unlimited

es  soft  memlock  unlimited

es  hard  memlock  unlimited

sysctl -p 生效

不做上述操作,部署es启动可能:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

2.内核参数优化

vim /etc/sysctl.conf

vm.max_map_count=262144  #定义了一个进程能拥有的最多的内存区域,都需要

net.core.somaxconn= 2048   #都需要加

sysctl -p 生效

不做上述操作,可能部署es启动:

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

3.安装jdk

cd /data/app

上传jdk的压缩包,或者yum自己下载

tar -xzvf jdk-*****-linux-x64.tar.gz 

配置环境变量(root  和  自己创建的用户都加一下环境变量)

vim /etc/profile   或者  ~/.bush_profile

export JAVA_HOME=/data/app/jdk******

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

生效

source /etc/profile或者 source ~/.bush_profile

验证jdk

java -version

4.安装es

cd /data/app

上传es的压缩包,并解压,和上面解压jdk命令一样 换下包就可以

创建数据和日志目录:

mkdir -p /data/app/es/{data,logs}

 

修改elasticsearch.yml配置文件:

vim /data/app/elasticsearc**/config/elasticsearch.yml

# ---------------------------------- Cluster -----------------------------------

# Use a descriptive name for your cluster:

#如果是应用独享,命名请使用es-应用名称

cluster.name: ********

# ------------------------------------ Node ------------------------------------

# 这个名称可以自己定义,建议node1、node2去命名

node.name: node1

#指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。

node.master: true

# 指定该节点是否存储索引数据,默认为true。

node.data: true

# ----------------------------------- Paths ------------------------------------

path.data: /data/app/es/data

# Path to log files:

path.logs: /data/app/es/logs

# ----------------------------------- Memory -----------------------------------

#服务器发生系统swapping的时候ES节点的性能会非常差,也会影响节点的稳定性。

#所以要不惜一切代价来避免swapping。swapping会导致Java GC的周期延迟从毫秒级恶化到分钟,

#更严重的是会引起节点响应延迟甚至脱离集群。

#这个参数的目的是当你无法关闭系统的swap的时候,建议把这个参数设为true。

#防止在内存不够用的时候,elasticsearch的内存被交换至交换区,导致性能骤降。

#ES默认开启了内存地址锁定,为了避免内存交换提高性能。但是Centos6不支持SecComp功能,启动会报错,所以需要将其设置为false

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

#network.host ,如果不限制主机访问,同时设置bind_host和publish_host两个参数,那我们只需要把该属性设置为0.0.0.0,那么就不限制主机的访问和节点的交互  

network.host: 10.**.**.72  //其他两台10.**.**68,10.**.**.71

#可以为Http传输监听定制端口

http.port: 9200

#配置节点之间交互的端口.默认端口

transport.tcp.port: 9300

# 设置是否压缩tcp传输时的数据,默认为false,不压缩

transport.tcp.compress: true 

# 设置请求内容的最大容量,默认100mb 

http.max_content_length: 100mb

#IP 最好是三个,注意master节点数量,一般为三个,data数量不限,配合node.master: true

discovery.zen.ping.unicast.hosts: ["10.**.**.72","10.**.**.68","10.**.**.71"]

# 这个参数控制的是,一个节点需要看到具有master资格的节点的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。

discovery.zen.minimum_master_nodes: 1

 

修改elasticsearch***/bin/elasticsearch 的配置文件

vim /data/app/elasticsearch**/bin/elasticsearch

export JAVA_HOME=/data/setup/jdk**** //增加环境变量

调整对内存,一般是服务器内存的一半

vim /data/app/elasticsearch**/config/jvm.options

-Xms10g

-Xmx10g

 

5.启动es

创建es用户

groupadd es

useradd -g es esl

 

更改相应目录归属:

chown -R esl:es /data/app/es 

chown -R esl:es /data/app/elasticsearch****

 

sudo -u esl /data/app/elasticsearch*****/bin/elasticsearch -d

 

直接curl  或者 浏览器访问一下 ip:9200  看看可以不

 

 

修改elasticsearch.yml配置文件:vi /data/app/app/elasticsearch/config/elasticsearch.yml# ---------------------------------- Cluster -----------------------------------# Use a descriptive name for your cluster:#如果是应用独享,命名请使用es-应用名称cluster.name: es-arms# ------------------------------------ Node ------------------------------------# 这个名称可以自己定义,建议node1、node2去命名node.name: node1#指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。node.master: true# 指定该节点是否存储索引数据,默认为true。node.data: true# ----------------------------------- Paths ------------------------------------path.data: /data/app/es/data# Path to log files:path.logs: /data/app/es/logs# ----------------------------------- Memory -----------------------------------#服务器发生系统swapping的时候ES节点的性能会非常差,也会影响节点的稳定性。#所以要不惜一切代价来避免swapping。swapping会导致Java GC的周期延迟从毫秒级恶化到分钟,#更严重的是会引起节点响应延迟甚至脱离集群。 #这个参数的目的是当你无法关闭系统的swap的时候,建议把这个参数设为true。#防止在内存不够用的时候,elasticsearch的内存被交换至交换区,导致性能骤降。#ES默认开启了内存地址锁定,为了避免内存交换提高性能。但是Centos6不支持SecComp功能,启动会报错,所以需要将其设置为falsebootstrap.memory_lock: falsebootstrap.system_call_filter: false#network.host ,如果不限制主机访问,同时设置bind_host和publish_host两个参数,那我们只需要把该属性设置为0.0.0.0,那么就不限制主机的访问和节点的交互  network.host: 10.20.12.72  //其他两台10.20.44.68,10.20.12.71#可以为Http传输监听定制端口http.port: 9200#配置节点之间交互的端口.默认端口transport.tcp.port: 9300# 设置是否压缩tcp传输时的数据,默认为false,不压缩transport.tcp.compress: true # 设置请求内容的最大容量,默认100mb http.max_content_length: 100mb#IP 最好是三个,注意master节点数量,一般为三个,data数量不限,配合node.master: truediscovery.zen.ping.unicast.hosts: ["10.20.12.72","10.20.44.68","10.20.12.71"]# 这个参数控制的是,一个节点需要看到具有master资格的节点的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。discovery.zen.minimum_master_nodes: 1

以上是关于1.elasticsearch集群部署的主要内容,如果未能解决你的问题,请参考以下文章

centos7下部署elasticSearch集群

elasticsearch + kibana + x-pack + logstash_集群部署安装

elasticsearch的安装部署

ELK——ElasticStack日志分析平台

ELK集群部署

Elasticsearch学习2--Elasticsearch数据类型简介