一、下载及配置
1.基本名词
index: es里的index相当于一个数据库。
type: 相当于数据库里的一个表。
id: 唯一,相当于主键。
node:节点是es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同(下面有讲)。
cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。
shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。
2.下载
直接在linux下敲命令,在线安装:
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.tar.gz
3.配置文件
下载后,放到你的目录下并解压. 因为我们要配置包含三个节点的集群,可以先将其重命名为elasticsearch-node1。比如我的是 /home/zkpk/elasticsearch-node1。
(1) 初步修改
打开/home/zkpk/elasticsearch-node1/config目录下的elasticsearch.yml 文件 ,修改以下属性值并取消该行的注释:
cluster.name: elasticsearch
#这是集群名字,我们 起名为 elasticsearch
#es启动后会将具有相同集群名字的节点放到一个集群下。
node.name: "es-master"
#节点名字。
discovery.zen.minimum_master_nodes: 2
#指定集群中的节点中有几个有master资格的节点。
#对于大集群可以写3个以上。
discovery.zen.ping.timeout: 40s
#默认是3s,这是设置集群中自动发现其它节点时ping连接超时时间,
#为避免因为网络差而导致启动报错,我设成了40s。
discovery.zen.ping.multicast.enabled: false
#设置是否打开多播发现节点,默认是true。
network.bind_host: 192.168.1.101
#设置绑定的ip地址,这是我的master虚拟机的IP。
network.publish_host: 192.168.1.101
#设置其它节点和该节点交互的ip地址。
network.host: 192.168.1.101
#同时设置bind_host和publish_host上面两个参数。
discovery.zen.ping.unicast.hosts: ["192.168.1.101", "192.168.1.101:9301","192.168.1.101:9302"]
#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"]
#指明集群中其它可能为master的节点ip,
#以防es启动后发现不了集群中的其他节点。
#第一对引号里是node1,默认端口是9300,
#第二个是 node2 ,在另外一台机器上,
#第三个引号里是node3,因为它和node1在一台机器上,所以指定了9301端口。
2) 进一步修改
拷贝 elasticsearch-node1 整个文件夹,再复制两份,如下图
对于node2:修改不同节点下的 elasticsearch.yml 文件:
node.name: "es-node2"
transport.tcp.port: 9301
http.port: 9201
node.name: "es-node3"
transport.tcp.port: 9302
http.port: 9202
注意:
1.对于单机多节点的es集群,一定要注意修改 transport.tcp.port 和http.port 的默认值保证节点间不冲突。
2. 出现找不到同一集群中的其他节点的情况,检查下
discovery.zen.ping.unicast.hosts 是否已设置。
二、运行 & 关闭 elasticsearch
1.运行elasticsearch :
编辑 /home/zkpk/elasticsearch-1.7.3/bin/elasticsearch.in.sh, 设置 ES_MIN_MEM和ES_MAX_MEM,确保二者数值一致,或者可以在启动es时指定,
[root@master ~]$ cd ~/elasticsearch-node1/bin
[root@master bin]$ ./elasticsearch -Xms512m -Xmx512m
若想让es后台运行,则
[root@master bin]$ ./elasticsearch -d -Xms512m -Xmx512m
- 2.关闭elasticsearch:
前台运行:可以通过”CTRL+C”组合键来停止运行
后台运行,可以通过”kill -9 进程号”停止.也可以通过REST API接口:
curl -XPOST http://主机IP:9200/_cluster/nodes/_shutdown
来关闭整个集群,通过:
curl -XPOST http://主机IP:9200/_cluster/nodes/节点标示符(如es-node1)/_shutdown
来关闭单个节点.
三、插件及其安装
BigDesk Plugin : 对集群中es状态进行监控。
Elasticsearch Head Plugin: 对ES进行各种操作,如查询、删除、浏览索引等。
1.安装head插件
进入到节点elasticsearch-node1/bin路径,并安装插件。
[root@master bin]$ ./plugin -install mobz/elasticsearch-head
2. 安装bigdesk
[root@master bin]$ ./plugin -install lukas-vlcek/bigdesk
打开head浏览,浏览器输入http://192.168.1.101:9200/_plugin/head/
完