ES 5.3 集群安装

来源:互联网 发布:淘宝上买车保险便宜吗 编辑:程序博客网 时间:2024/06/05 11:44

ES 5.3 集群安装


目录

  • ES 53 集群安装
      • 目录
    • 安装jdk18
    • 调整内核参数
      • 修改文件描述符
      • 虚拟内存
      • 线程数
    • ES安装
    • 其他坑

安装jdk1.8

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

  • 安装java
    下载java:java1.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

ES安装

  • 下载,解压(ES 5.3)
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gztar 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: falsebootstrap.system_call_filter: false

参考文档:SecComp fails on CentOS 6

1 0
原创粉丝点击