Linux下ES安装及配置 下载本文

Linux下ES安装、配置及示例文档

本文在两台Linux虚拟机上安装了三个节点,本次搭建ES同时实践了两种模式--单机模式和分布式模式,以下是本次三个节点的配置情况: IP ES节点

172.16.16.204 node1、node3 172.16.16.220 node2

一、下载ES及配置

1相关术语

Index:es里的index相当于一个数据库 Type:相当于数据库里的一张表 Id:唯一,相当于表的主键

Node:节点的ES示例,一台机器可以运行多个示例,但是同一台机器上的示例在配置文件中要确保http和tcp端口不同(下面有详细介绍)

Cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是针对集群内部来说的

Shards:索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索,分片的数量只能在索引创建前指定,并且索引创建后不能更改

Replicas:索引副本,es可以设置多个索引的副本,副本的作用一是可以提高系统的容错性,当某个节点上某个分片损坏或丢失,可以从副本中恢复;二是可以提高es的查询效率,es会自动对搜索请求进行负载均衡

2下载

版本:1.7.3

下载地址:https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.tar.gz

下载后放到目录下并解压,因为我们要配置包含三个节点的集群,可以先将其命名为elasticsearch-node1,比如我存放的路径是/home/jianpei/elasticsearch-node1

2.1修改配置文件 2.1.1

打开/home/jianpei/elasticsearch-node1/config目录下的elasticsearch.yml文件,修改以下属性

值并取消该行的注释 cluster.name: elasticsearch

#这是集群的名字,我们命名为elasticsearch,es启动后会将具有相同名字的集群节点放到同一个集群下

node.name: \

#节点名称

node.master: true

#是否作为主节点,每个节点都可以设置成主节点,默认值为true node.data: true

#是否存储数据,及存储索引片段,默认值为true index.number_of_shards: 5

#设置一个索引的碎片数量,默认值为5 index.number_of_replicas: 1

#设置一个索引可被复制的数量,默认值为1 discovery.zen.ping.timeout: 30s

#默认是3秒,这是设置集群中自动发现其他节点ping超时时间,为避免网络差导致启动报错,我设置成了30秒

network.bind_host: 172.16.16.204 #设置绑定的IP地址

network.publish_host: 172.16.16.204

#设置其他节点连接此节点的地址,如果不设置的话则自动获取 network.host: 172.16.16.204

#可同时设置上面两个参数

Es集群master节点发现机制采用单播形式,主要配置有三行如下: discovery.zen.minimum_master_nodes: 2

#指定集群中的节点有几个有master资格的节点,对于大集群可以设置3个以上 discovery.zen.ping.multicast.enabled: false

#是否打开多播发现节点,默认值为true

discovery.zen.ping.unicast.hosts: [\

#指明集群中其他可能为master的节点IP,以防es启动后发现不了集群中的其他节点,第一对引号里是node1,默认端口为9300,第二对引号里是node2,在172.16.16.220这台服务器上,第三对引号里是node3,因为和node1在同一台服务器,所以端口改为9301

2.1.2

拷贝elasticsearch-node1整个文件夹两份,一份命名为elasticsearch-node2,一份命名为elasticsearch-node3,将node2拷贝到172.16.16.220服务器上,而在172.16.16.204上有node1和node3,因为node1和node3在一台机器上,node1配置文件里端口默认为9200和9300,所以要修改node3配置文件里的端口号,elasticsearch.yml文件修改如下: node.name: \transport.tcp.port: 9301 http.port: 9201

对于node2,elasticsearch.yml文件修改如下: node.name: \

network.bind_host: 172.16.16.220

network.publish_host: 172.16.16.220 network.host: 172.16.16.220 注意:

(1)对于单击多节点的es集群,一定要修改transport.tcp.port和http.port的默认值保证节点间不冲突;

(2)出现找不到同一集群中的其他节点的情况,检查下discovery.zen.ping.unicast.hosts是否已设置

二、安装插件

BigDesk Plugin:对集群中es状态进行监控

Elasticsearch Head Plugin:对es进行各种操作,比如:查询、删除、浏览索引等。

1安装head插件

进入/elasticsearch-node1/bin路径,执行以下命令安装head插件 ./plugin -install mobz/elasticsearch-head

2安装bigdesk插件

./plugin -install lukas-vlcek/bigdesk

注意:如果执行Linux命令时遇到没有权限执行失败情况时,用chmod命令修改权限即可

三、运行关闭elasticsearch

1运行

编辑/home/jianpei/elasticsearch-node1/bin/elasticsearch.in.sh,设置ES_MAX_MEM,确保二者保持一致,或者可以es启动时指定 ./elasticsearch -Xms512m -Xmx512m 如果要es后台运行,则:

./elasticsearch -d -Xms512m -Xmx512m

ES_MIN_MEM

2关闭

前台运行:CTRL+C组合键来停止运行

后台运行:可以通过“kill -9 进程号”关闭,也可以通过执行命令: curl -XPOST http://主机ip:9200/_cluster/nodes/_shutdown 关闭整个集群