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
原文地址:https://www.cnblogs.com/timor19/p/12134368.html