1.系统环境

三台服务器(最好是单数台,跟master选举方式有关),确保机器互相ping的通,且都需要装了jdk 8环境,机器IP和 elasticsearch 的节点名称如下:

cluster name

node name

IP Addr

说明

local_ES

node-01

192.168.2.10

local_ES

node-02

192.168.2.11

local_ES

node-03

192.168.2.12

2.安装部署

官网下载linux下安装包,https://www.elastic.co/downloads/past-releases,我们使用的版本是6.7.2,使用 wget 命令下载文件。

$> wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.2.tar.gz

解压到 opt 目录,命令如下:

$> tar -xvf elasticsearch-6.7.2.tar.gz -C /opt

由于安全原因,不能用 root 用户运行,所以需要添加 es 组和 es 用户,并赋予其文件夹权限,命令如下:

$> groupadd es

$> useradd es -g es -p es

$> chown es:es /opt/elasticsearch-6.7.2

$> chown es /opt/elasticsearch-6.7.2 -R

设置最大线程数量,如果不进行设置,会出现如下异常:

max number of threads [3818] for user [es] is too low, increase to at least [4096]

修改文件:

$> vi /etc/security/limits.conf

增加文件内容如下:

*  soft nproc 4096

*  hard nproc 4096

设置 elasticsearch 进程打开文件最大数量,如果不进行设置,会出现如下异常:

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

修改文件:

$> vi /etc/security/limits.conf

增加文件内容如下:

* soft nofile 65536

*  hard nofile 65536

设置最大虚拟内存,如果不进行设置,会出现如下异常:

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

修改文件:

$> vi /etc/sysctl.conf

增加文件内容如下:

vm.max_map_count=262144

然后执行 sysctl -p 来生效修改

3.安装插件

安装中文分词插件,插件的 Github 地址为 https://github.com/medcl/elasticsearch-analysis-ik/ ,使用 bin 目录下的 elasticsearch-plugin 命令来进行安装,命令如下:

$> ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.7.2/elasticsearch-analysis-ik-6.7.2.zip

.集群配置

通过 cluster.name 属性配置集群的名字,用于唯一标识一个集群,不同的集群,其 cluster.name 不同,集群名字相同的所有节点自动组成一个集群。如果不配置改属性,默认值是:elasticsearch。当启动一个结点时,该结点会自动寻找相同集群名字的主结点;如果找到主结点,该结点加入集群中;如果未找到主结点,该结点成为主结点。集群相关配置如下:

属性

缺省值

描述

cluster.name

federated_cluster

Elasticsearch 集群名称。使用集群可将单独 Process Federation Server 绑定到单个分布式系统中。参与集群的所有服务器都必须具有相同的集群名称。

node.name

node1

Elasticsearch 节点名。集群中的每个 Process Federation Server 都必须具有唯一节点名。

transport.tcp.port

用于某个集群中 Elasticsearch 节点之间的通信的端口。

discovery.zen.ping.unicasts.hosts

localhost

提供其他 Elasticsearch 服务节点的单点广播发现功能。配置集群中基于主机 TCP 端口的其他 Elasticsearch 服务的逗号分隔列表。

例如:

discovery.zen.ping.unicast.hosts: ["192.168.2.10", "192.168.2.11","192.168.2.12"]

有关更多信息,请参阅 Elasticsearch 文档

5.配置属性

属性

缺省值

描述

cluster.name

federated_cluster

Elasticsearch 集群名称。使用集群可将单独 Process Federation Server 绑定到单个分布式系统中。参与集群的所有服务器都必须具有相同的集群名称。

node.name

node1

Elasticsearch 节点名。集群中的每个 Process Federation Server 都必须具有唯一节点名。

node.master

true

指示某个节点是否符合成为主节点的条件。主节点管理 Elasticsearch 集群的状态。在运行时,Elasticsearch 服务会自动提名某一个合格的集群成员成为主节点。

仅当您想要对专用主节点和数据节点采用高级配置时,才将该值设置为 false。此类型的配置并不常用。

node.data

true

指示节点是否为数据节点。数据节点包含并管理索引的一部分。

仅当您想要对专用主节点和数据节点采用高级配置时,才将该值设置为 false。此类型的配置并不常用。

network.host

127.0.0.1

将绑定地址设置为特定的IP

http.port

如果启用了 HTTP 端口,那么此属性指定由 Elasticsearch 服务使用的端口。

http.cors.enabled

true

如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。

http.cors.allowed.origin

localhost

如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。

transport.tcp.port

用于某个集群中 Elasticsearch 节点之间的通信的端口。

discovery.zen.minimum_master_nodes

指示某个集群定额所需的 Process Federation Server 的数量。

缺省值为 1 表示单服务器环境。对于生产环境,请将该值设置为组成定额所需的 Process Federation Server 的数量。例如,如果在集群中总计有三个 Process Federation Server,请将该值设置为"2",如果在集群中总计有五个 Process Federation Server,请将该值设置为"3"。

有关更多信息,请参阅 Elasticsearch 文档

discovery.zen.ping.multicast.enabled

false

通过发送节点所接收和响应的一个或多个多点广播请求来提供对其他 Elasticsearch 服务节点的多点广播 ping 发现功能。有关更多信息,请参阅 Elasticsearch 文档

discovery.zen.ping.unicasts.hosts

localhost

提供其他 Elasticsearch 服务节点的单点广播发现功能。配置集群中基于主机 TCP 端口的其他 Elasticsearch 服务的逗号分隔列表。

例如:

discovery.zen.ping.unicast.hosts="localhost:9300,localhost:9301,localhost:9302

有关更多信息,请参阅 Elasticsearch 文档

discovery.zen.ping.timeout

3s

Elastic 搜索节点等待加入 Elasticsearch 集群的时间。

elasticsearch 集群搭建及启动常见错误的更多相关文章

  1. Mongodb集群搭建过程及常见错误

    Replica Sets MongoDB 支持在多个机器中通过异步复制达到故障转移和实现冗余.多机器中同一时刻只 有一台是用于写操作.正是由于这个情况,为 MongoDB 提供了数据一致性的保障.担当 ...

  2. 和我一起打造个简单搜索之ElasticSearch集群搭建

    我们所常见的电商搜索如京东,搜索页面都会提供各种各样的筛选条件,比如品牌.尺寸.适用季节.价格区间等,同时提供排序,比如价格排序,信誉排序,销量排序等,方便了用户去找到自己心里理想的商品. 站内搜索对 ...

  3. elasticsearch集群搭建实例

    elasticsearch集群搭建实例 下个月又开始搞搜索了,几个月没动这块还好没有落下. 晚上在自己虚拟机上搭建了一个简易搜索集群,分享一下. 操作系统环境: Red Hat 4.8.2-16 el ...

  4. Elasticsearch集群搭建教程及生产环境配置

    Elasticsearch 是一个极其强大的搜索和分析引擎,其强大的部分在于能够对其进行扩展以获得更好的性能和稳定性. 本教程将提供有关如何设置 Elasticsearch 集群的一些信息,并将添加一 ...

  5. Elasticsearch集群搭建及使用Java客户端对数据存储和查询

    本次博文发两块,前部分是怎样搭建一个Elastic集群,后半部分是基于Java对数据进行写入和聚合统计. 一.Elastic集群搭建 1. 环境准备. 该集群环境基于VMware虚拟机.CentOS ...

  6. ElasticStack之Elasticsearch集群搭建

    需搭建服务器环境 操作系统 Host:port node 1 CentOS 7.2.1511 11.1.11.127:9200 node1 2 CentOS 7.2.1511 11.1.11.128: ...

  7. CentOS 7下ElasticSearch集群搭建案例

    最近在网上看到很多ElasticSearch集群的搭建方法,本人在这人使用Elasticsearch5.0.1版本,介绍如何搭建ElasticSearch集群并安装head插件和其他插件安装方法. 一 ...

  8. Es学习第十课,ElasticSearch集群搭建

    前面几课我们已经把ES的基本概念和查询了解了,大家知道ES的核心优势就是天生支持分布式,所以,这课我们专门讲讲怎么搭建实现ES的集群部署. ES分布式原理 1.es分布式概念 主分片(Primary ...

  9. Elasticsearch集群搭建

    现有两部机器:192.168.31.86,192.168.31.87   参考以往博文对Elasticsearch进行配置完成:http://www.cnblogs.com/zhongshengzhe ...

随机推荐

  1. python+selenium下拉列表option对象操作方法一

    参考官方文档:https://selenium.dev/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.select ...

  2. 《深入浅出WPF》学习总结之XAML标签语言一

    一.XMAL概览 1.XAML在桌面开发及富媒体网络程序的开发中扮演了HTML+CSS+JS的角色. 2.XAML可以将UI和逻辑代码分离,降低耦合度. 3.XAML是一种单纯的申明形语言 4.XAM ...

  3. Vue 基础 day01

    什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于We ...

  4. 【洛谷p3958】奶酪

    奶酪[题目链接] 题前废话不知道说啥了啊qwq(越来越沉默寡言) 好了看题: SOLUTION: 思路的话,大概是搜索,然后大概广搜??? 但是我们今天写深搜(也是听xcg大佬讲了以后的整理博) 首先 ...

  5. HDU 5094 题解(状压BFS)

    题面: Maze 题目中文大意: 这个故事发生在“星际迷航”的背景下. “星际争霸”的副队长史波克落入克林贡的诡计中,被关押在他们的母亲星球Qo’noS上. 企业的上尉詹姆斯·T·柯克(James T ...

  6. <meta>标签中http-equiv属性的属性值X-UA-Compatible详解

    X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  7. python RE表达式规则剩余规则

    前面我学习了 ’.‘ '^' '$' '*' '+' '?'  基本针对单个字符的,学习python 表达式规则剩余规则. 1,{m} 匹配前一个字符m次 2,{n,.m} 匹配前一个字符n到m次 3 ...

  8. jmeter性能测试遇到的问题

    1.出现socket closed问题: 修改方式: 问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive(这个是什么?看后面资料),这个是连接协议,JMet ...

  9. 更新SVN时提示要清理,但清理失败,乱码得解决方案

    问题情况如图: 解决办法: 依托工具——sqlite3, 首先在项目根目录下找到.svn文件夹,将其中的wc.db复制到工具所在路径. 如果找不到.svn,需要把隐藏文件选项勾去. 路径如图: 此时, ...

  10. WannaCry的UWP版,哈哈哈