ES 5.3 集群安装

ES 5.3 集群安装


目录

安装jdk1.8

在es 5.0以后的版本需要java版本为1.8以上。否则启动时就会报错。

## 解压、安装
tar zxvf jdk-8u121-linux-x64.tar.gz
  • 配置环境变量
vim /etc/profile

添加以下配置

JAVA_HOME=/usr/local/java1.8         //java的安装路径
PATH=$JAVA_HOME/bin:$PATH      
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

保存后然后执行以下命令

source /etc/profile

验证

java -version
## 得到以下信息
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b14, mixed mode)

调整内核参数

在es5.0安装前,需要配置几项内核参数,否者ES无法启动

修改文件描述符

如果未修改会报以下错误:

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
  • 临时方案
ulimit -SHn 655350
  • 永久方案
vim /etc/security/limits.conf
## 修改以下配置信息
* soft nofile 655350
* hard nofile 655350

虚拟内存

如果未配置,会报以下错误:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  • 临时方案
sysctl -w vm.max_map_count=655360
  • 永久方案
vim /etc/sysctl.conf
## 添加以下信息
vm.max_map_count=262144
  • 验证
sysctl -a

线程数

如果未配置,会报以下的错:

max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

编辑/etc/security/limits.d/90-nproc.conf

* soft nproc 1024
## 修改为
* soft nproc 2048

内存锁

报错信息:

ERROR: bootstrap checks failed
memory locking requested for elasticsearch process but memory is not locked

编辑/etc/security/limits.conf

切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:
sudo vim /etc/security/limits.conf

添加如下内容:
* soft memlock unlimited
* hard memlock unlimited
备注:* 代表Linux所有用户名称

ES安装

  • 下载,解压(ES 5.3)
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
tar zxvf elasticsearch-5.3.0.tar.gz
  • 安装x-pack
./elasticsearch-5.3.0/bin/elasticsearch-plugin install x-pack

备注:x-pack支持离线安装方式,一劳永逸,详情请见ES x-pack官方安装手册

  • 配置
    由于本章节只讲到了ES的安装,我们不对ES的参数做详细的解析。以下为普通配置项:
# 集群名称
cluster.name: dev-elasticstack5.0
# 节点信息
node.name: node-2
# 机柜信息
node.attr.rack: r1
# 数据目录
path.data: /data1/esdata,/data2/esdata,/data3/esdata,/data4/esdata,/data5/esdata,/data6/esdata,/data7/esdata,/data8/esdata
# 日志目录
path.logs: /opt/elasticsearch-5.1.1/logs
# HTTP端口
http.port: 9200
# 是否作为主节点
node.master: true
# 是否作为数据节点
node.data: true
  • 启动
    ES启动不支持root,所以建议单独建立建立用户用于elastic的启动和管理
su elastic
./elasticsearch-5.3.0/bin/elasticsearch -d                // -d 为在后台启动,不加 -d 将在前端运行
  • 验证
    查看集群健康状态
curl -XGET "http://localhost:9200/_cluster/health?pretty"

其他坑

  • Centos6安装ES5的坑
    一次在项目上,项目要求我们使用Centos6系统部署ES 5.0然后启动时候报以下错误
$ bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
$ node validation exception
$ bootstrap checks failed
$ system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
  • 解决办法
    经过多方查询,结果发现是由于ES中有一个叫SecComp的组件,对内核有需求(具体需要多少以上我忘了…),而centos6的内核为2.6,低于了需求的内核。ES有一个参数为bootstrap.system_call_filter,默认情况下该参数的值为ture,他会检测SecComp的初始化,如果初始化失败,bootstrap将会报错。所以,解决方案就很简单了,我们需要在/conf/elasticsearch.yml中配置以下参数:
## 特别注意,该参数需要在bootstrap.memroy的配置下面添加
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

参考文档:SecComp fails on CentOS 6

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值