一、准备阶段

三台ubuntu系统机器

ip 计算机名
192.168.2.132 master
192.168.2.133 slave1
192.168.2.134 slave2

下载:

jdk-8u201-linux-x64.tar.gz
elasticsearch-6.1.3.tar.gz

二、配置JDK

2.1配置JAVA环境变量

解压jdk-8u201-linux-x64.tar.gz,并修改文件名,已方便配置环境变量

#解压JDK安装包
tar -zxvf jdk-8u201-linux-x64.tar.gz
#修改文件夹名称
mv jdk1.8.0_201 jdk
#写入系统环境变量中
vi /etc/profile
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
#让系统环境变量生效
source /etc/profile

2.2检测JDK是否生效

java -version

三、修改系统配置

3.1修改limits.conf

增加连接数,不然ES无法启动

vi /etc/security/limits.conf

添加如下内容

注意:ubuntu系统不能写*,必须写root配置,否则不会生效

#Ubuntu系统
root soft nofile 65536
root hard nofile 131072
root soft nproc 65536
root hard nproc 524288
root soft memlock unlimited
root hard memlock unlimited
supermap soft memlock unlimited
supermap hard memlock unlimited
#----------------------------------------------
#其他系统
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 524288
* soft memlock unlimited
* hard memlock unlimited

3.2修改sysctl.conf

增加连接数,不然ES无法启动

vi /etc/sysctl.conf
最后一行增加
vm.max_map_count=655360

运行命令

sysctl -p

使之生效

3.3重启电脑后,检查是否生效

ulimit -Sn 查看的是软限制
ulimit -Hn 查看的是硬限制
ulimit -a 查看完整信息

如果信息都变过来后,可以继续,在其他两台电脑上修改上述内容(配置JDK,修改系统环境变量操作)

四、添加新用户(三台机器上都要操作)

ES启动必须使用非Root用户启动,所以我们需要创建一个新用户用于启动

groupadd supermap
useradd -m supermap -g supermap -p supermap
passwd supermap

新添加完成后切换到新创建的用户

su supermap

五、安装ES

5.1 将ES压缩包放到/home/supermap 目录下并解压ES安装包,(三台机器上都要操作)

tar -zxvf elasticsearch-6.1.3.tar.gz

并创建存储ES的数据目录和日志目录

mkdir /home/supermap/elasticsearch-6.1.3/data
mkdir /home/supermap/elasticsearch-6.1.3/logs

5.2 修改ES配置文件 (下文只保留所需内容)

vi /home/supermap/elasticsearch-6.1.3/config/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------

cluster.name : my-cluster

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

node.name : node-1

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

path.data: /home/supermap/elasticsearch-6.1.3/data

path.logs: /home/supermap/elasticsearch-6.1.3/logs

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

bootstrap.memory_lock: true

# ---------------------------------- Network -----------------------------------

network.host: 192.168.2.132

http.port: 9200

node.master: true

node.data: true

# --------------------------------- Discovery ----------------------------------

discovery.zen.ping.unicast.hosts: ["192.168.2.132", "192.168.2.133","192.168.2.134"]

discovery.zen.minimum_master_nodes: 2

# ---------------------------------- Gateway -----------------------------------

gateway.recover_after_nodes: 3

其他节点(其他两台机器)slave1和slave2可复制上述内容,并修改其他几个关键信息,其他同上述master一致。

node.name: node-2

node.master: true

node.data: true

network.host: 192.168.2.133
node.name: node-3

node.master: false

node.data: true

network.host: 192.168.2.134

5.3 启动ES集群

运行三个节点顺序无关,但是必须得用普通用户启动。

cd /home/supermap/elasticsearch-6.1.3/bin

./elasticsearch

或者后台方式运行,如果以后台方式运行,将来查看进程命令:ps aux | grep elasticsearch

./elasticsearch -d

5.4 访问ES

可以使用IP地址加9200端口进行访问

当其他机器集群启动起来后,可以使用2种方法查看集群的健康度

方法一:curl 'http://IP:9200/_cat/health?v'

epoch      timestamp cluster    status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1573459172 15:59:32 my-cluster green 3 3 0 0 0 0 0 0 - 100.0%

方法二:浏览器访问http://IP:9200/_cat/health?v

epoch      timestamp cluster    status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1573459526 16:05:26 my-cluster green 3 3 0 0 0 0 0 0 - 100.0%

六、常见错误

6.1 uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

不能以root用户启动

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

内存锁定失败,切换到root用户,修改limits.conf配置文件,vim /etc/security/limits.conf
添加* soft memlock unlimited / * hard memlock unlimited
(ubutnu需要写root soft memlock unlimited / root hard memlock unlimited)
临时取消:ulimit -l unlimited

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

最大虚拟内存太小,切换到root用户下,修改配置文件sysctl.conf

sudo vim /etc/sysctl.conf
添加下面配置: vm.max_map_count=655360
并执行命令: sysctl -p

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

按照上述所说的准备里修改limits.conf配置文件, 修改之后查询,ulimit -a

如果没有变化,需要修改/etc/pam.d/su,将session required pam_limits.so
注释打开,保存,重启就会生效
临时修改,ulimit -n 65536
ulimit -Sn 查看的是软限制
ulimit -Hn 查看的是硬限制
ulimit -a 查看完整信息

6.5 java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in

内核太低的缘故,可以升级linux内核(可忽略)

6.6 ERROR: 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

修改elasticsearch-6.1.3/config/elasticsearch.yml ,增加

bootstrap.system_call_filter: false

6.7跨域访问问题

修改config\elasticsearch.yml,新增加如下配置,重启ES即可

http.cors.enabled: true
http.cors.allow-origin: /.*/

(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)

Elasticsearch6.x集群部署的更多相关文章

  1. elasticsearch6.x集群环境部署

    elasticsearch集群部署安装jdk chmod 755 jdk-8u161-linux-x64.tar.gztar -zxvf jdk-8u161-linux-x64.tar.gzcp jd ...

  2. Linux中Elasticsearch集群部署

    1.下载安装包elasticsearch-6.3.1  安装包自己下载,网上很多 2.安装位置在cd /usr/local/elasticsearch/目录下 3.因为ES使用root权限运行会报错, ...

  3. Elasticsearch系列---生产集群部署(下)

    概要 本篇继续讲解Elasticsearch集群部署的细节问题 集群重启问题 如果我们的Elasticsearch集群做了一些离线的维护操作时,如扩容磁盘,升级版本等,需要对集群进行启动,节点数较多时 ...

  4. elasticSearch数据库、skywalking集群部署

    Centos6上面安装elasticsearc数据库的集群 安装的是6.3.2版本,安装之前首先要先安装jdk1.8版本 安装之前首先需要关闭防火墙 Centos6 sudo service ipta ...

  5. 基于Centos7xELK+Kafka集群部署方案

    本次集群部署使用ELK版本统一为6.8.10,kafka为2.12-2.51 均可在官网下载 elasticsearch下载地址:https://www.elastic.co/cn/downloads ...

  6. Quartz.net持久化与集群部署开发详解

    序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...

  7. Openfire 集群部署和负载均衡方案

    Openfire 集群部署和负载均衡方案 一.   概述 Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Hapro ...

  8. 基于Tomcat的Solr3.5集群部署

    基于Tomcat的Solr3.5集群部署 一.准备工作 1.1 保证SOLR库文件版本相同 保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6 ...

  9. jstorm集群部署

    jstorm集群部署下载 Install JStorm Take jstorm-0.9.6.zip as an example unzip jstorm-0.9.6.1.zip vi ~/.bashr ...

随机推荐

  1. InfluxDB从原理到实战 - 什么是InfluxDB

    0x00 什么是InfluxDB InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读.高性能写.高效存储与实时分析等,在DB-Engines Rankin ...

  2. MySql权限丢失问题解决

    参考文章 [mysql] root权限丢失恢复 完全菜鸟教程 今天用root账户登录到mysql后, show databases 命令返回的只有两个表, 然后使用 use database 命令提示 ...

  3. Hadoop-2.7.3-本地模式安装-wordcount例子

    准备虚拟机:linux-rhel-7.4-server,由于不使用虚拟机进行联网,所以选择host-only网络模式.此处,需要再VitralBox的管理菜单中的主机网络管理器新建一个虚拟网卡.安装完 ...

  4. 在chrome浏览器安装各种前端,后台插件

    如果想要在chrome安装插件,首先得先有应用chrome的商城,但是默认情况下是没有应用商店: 默认情况下下面这个界面是空白的,没有任何东西,第一步就先安装[谷歌访问助手] 安装步骤 第一步: 下载 ...

  5. Spring Cloud Alibaba学习笔记(3) - Ribbon

    1.手写一个客户端负载均衡器 在了解什么是Ribbon之前,首先通过代码的方式手写一个负载均衡器 RestTemplate restTemplate = new RestTemplate(); // ...

  6. luoguP4779 【模板】单源最短路径

    题目描述 单源最短路径模板. 使用 SPFA 肯定是不行的啦,网格图hack. 所以我们使用 Dijkstra 算法. 这里有一篇写的很好的 blog,无必要赘述.最后贴上代码. #include&l ...

  7. docker实验--redis集群搭建

    背景介绍: 我经常在做一些小项目的时候,采用了Redis来做缓存,但是都是基于单节点的,一旦redis挂了,整个项目就挂了.于是乎,想到了多节点集群的方式来使用,就开始折腾着怎么去搭建这个集群.在网上 ...

  8. cookie session token 详解

    cookie 是保存在本地终端的数据.cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器. 可以在浏 ...

  9. MyBatis 示例-类型处理器

    MyBatis 提供了很多默认类型处理器,参考官网地址:链接,除了官网提供的类型处理器,我们也可以自定义类型处理器. 具体做法为:实现 org.apache.ibatis.type.TypeHandl ...

  10. FastDFS集群-安装说明

    一.简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线 ...