elasticsearch 集群部署

来源:互联网 发布:阿里云怎样解析域名 编辑:程序博客网 时间:2024/05/19 18:10

一、环境介绍

三个服务器节点,分别为:

huawei@10.18.133.5

huawei@10.18.133.6

huawei@10.18.133.7

二、Elasticsearch集群搭建

2.1 源码下载

首先需要说明的是因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户。以我的为例

分别建立的三个用户名都是huawei。

接下来,在官网上下载源码:

https://www.elastic.co/downloads/past-releases/elasticsearch-2-4-1

下载后分别拷贝到三个服务器中,并解压,假设解压后的路径为: 

/usr/local/elasticsearch-2.4.1

2.2 配置elasticsearch.yml文件

下面以huawei@10.18.133.5中/usr/local/elasticsearch-2.4.1的过程为例:

elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是Elasticsearch的基本配置文件,第二个是日志配置文件,Elasticsearch也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了(logging.yml用默认的也可以)。下面主要讲解下elasticsearch.yml文件的配置。

cd /usr/local/elasticsearch-2.4.1/config

vim elasticsearch.yml

对elasticsearch.yml文件进行修改,下面是配置文件中的一些内容,标红的是必须要配置的项,黑色的用默认配置完全可以。(每个配置项下面都有该配置项意义的说明

cluster.name: GJL
配置es的集群名称,默认是elasticsearch,Elasticsearch会自动发现在同一网段下的Elasticsearch,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。

node.name: node-5

(因为该节点ip地址为10.18.133.5,所以我设成node-5)

节点名,默认随机指定一个name列表中名字,该列表在Elasticsearch的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。

node.rack: r1

在同一个机架上的数据会集中在一起,避免过多的跨机架的数据迁移。

path.data: /path/to/data
设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:
path.data: /path/to/data1,/path/to/data2

path.logs: /path/to/logs
设置日志文件的存储路径,默认是es根目录下的logs文件夹。

bootstrap.mlockall: false
mlockall 属性可以让ES节点不进行Swapping。(注意仅适用于Linux/Unix系统)。

mlockall 默认是false的,意味着ES节点被允许Swapping。注意,如果你在文件中设置该属性为true,一定确保通过-DXmx选项或ES_HEAP_SIZE给ES节点预留足够的内存。

network.host: 10.18.133.5
服务器的ip地址

http.port: 9200
设置对外服务的http端口,默认为9200。

discovery.zen.ping.unicast.hosts: ["10.18.133.5", "10.18.133.6", "10.18.133.7"]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。

discovery.zen.minimum_master_nodes: 2
集群中至少有几个候选master节点,为了防止脑裂,在三个节点时,配置为2

gateway.recover_after_nodes: 1
设置集群中N个节点启动时进行数据恢复,默认为1。

node.max_local_storage_nodes: 1

该参数是用来控制节点是否允许从单目录启动多个实例。如果物理机节点承担太多的数量的实例,很容易会超过了其硬件承受能力,总体性能都要下降,设置1为禁止。

action.destructive_requires_name: true

设置是否可以通过正则或者_all删除或者关闭索引。

2.3 拷贝配置文件

将huawei@10.18.133.5中的配置文件拷贝到huawei@10.18.133.6和huawei@10.18.133.7

只需将其中的node.name和network.host进行修改即可。

至此,Elasticsearch集群的配置过程就完成了。

三、Elasticsearch集群启动

分别在三个服务器执行如下命令

cd /usr/local/elasticsearch-2.4.1/bin

./elasticsearch


Elasticsearch会自动识别集群,并选出master节点,通过下面的命令查看集群状态

curl -XGET 10.18.133.5:9200/_cluster/health?pretty=true