阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下ElasticSearch 安装配置及示例

194次阅读
没有评论

共计 4733 个字符,预计需要花费 12 分钟才能阅读完成。

简介

开始学 ElasticSearch,我习惯边学边记,总结出现的问题和解决方法。本文是在两台 Linux 虚拟机下,安装了三个节点。本次搭建 es 同时实践了两种模式——单机模式和分布式模式。条件允许的话,可以在多台机器上配置 es 节点,如果你机器性能有限,那么可以在一台虚拟机上完成多节点的配置。

如图,是本次 3 个节点的分布。

虚拟机主机名 IP es 节点
master 192.168.137.100 node1、node3
slave 192.168.137.101 node2

一、下载及配置

1. 几个基本名词

index: es 里的 index 相当于一个数据库。
type: 相当于数据库里的一个表。
id: 唯一,相当于主键。
node:节点是 es 实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保 http 和 tcp 端口不同(下面有讲)。
cluster:代表一个集群,集群中有多个节点,其中有一个会被选为 主节点 ,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。
shards: 代表索引分片,es 可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
replicas:代表索引副本,es 可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高 es 的查询效率,es 会自动对搜索请求进行负载均衡。

2. 下载

名称 版本 下载地址
elasticsearch 1.7.3 elasticsearch-1.7.3.tar.gz

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

3. 修改配置文件

(1) 初步修改
打开 /home/zkpk/elasticsearch-node1/config 目录下的elasticsearch.yml 文件 , 修改以下属性值并取消该行的注释:

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

node.name: "es-node1"
# 节点名字。

covery.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.137.100
# 设置绑定的 ip 地址,这是我的 master 虚拟机的 IP。

network.publish_host: 192.168.137.100
# 设置其它节点和该节点交互的 ip 地址。

network.host: 192.168.137.100
# 同时设置 bind_host 和 publish_host 上面两个参数。

discovery.zen.ping.unicast.hosts: ["192.168.137.100",  "192.168.137.101","192.168.137.100:9301"]
#discovery.zen.ping.unicast.hosts:["节点 1 的 ip","节点 2 的 ip","节点 3 的 ip"]
指明集群中其它可能为 master 的节点 ip, 以防 es 启动后发现不了集群中的其他节点。第一对引号里是 node1,默认端口是 9300。第二个是 node2,在另外一台机器上。第三个引号里是 node3,因为它和 node1 在一台机器上,所以指定了9301 端口。

(2) 进一步修改
拷贝 elasticsearch-node1 整个文件夹,两份,一份 elasticsearch-node2,一份 elasticsearch-node3.
将 elasticsearch-node2 文件夹 copy 到另外一台 IP 为 192.168.137.101 的机器上。而在 192.168.137.100 机器上有 node1 和 node3.

对于 node3: node3 和 node1 在一台机器上,node1 的配置文件里端口默认分别是 9300 和 9200,所以要改一下 node3 配置文件里的端口,elasticsearch.yml 文件修改如下:

node.name: "es-node3"
transport.tcp.port: 9301
http.port: 9201

对于 node2:elasticsearch.yml 修改如下

node.name: "es-node2"
network.bind_host: 192.168.137.101
network.publish_host: 192.168.137.101
network.host: 192.168.137.101

注意:
1. 对于单机多节点的 es 集群,一定要注意修改 transport.tcp.porthttp.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 时指定,

[zkpk@master ~]$ cd ~/elasticsearch-node1/bin
[zkpk@master bin]$ ./elasticsearch -Xms512m -Xmx512m

若想让 es 后台运行,则

[zkpk@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 路径,并安装插件。

[zkpk@master bin]$ ./plugin -install mobz/elasticsearch-head

2. 安装 bigdesk

[zkpk@master bin]$ ./plugin -install lukas-vlcek/bigdesk

让我们看下 es 页面吧~~

打开 head 浏览,浏览器输入http://192.168.137.100:9200/_plugin/head/,如图,

Linux 下 ElasticSearch 安装配置及示例

每个小方块就是 索引分片 ,可以看到每个索引被分成几个分片,每个分片还有它的备份分片,然后存储在三个节点上。 粗框 的是主分片,细框 的是备份分片。

四、添加索引

现在我们来添加一个索引记录吧~

1. 可以在命令窗口通过命令来添加

curl -XPUT 'http:// 主机 IP:9200/dept/employee/32' -d '{"empname":"emp32"}'

2. 我们可以在页面上通过 JSON 添加

(1)点击 复合查询[+],我们可以在 megacorp 索引(相当于数据库名)的 employee 类型(相当于表名)下新增一个 id 为 2 的人的信息。

Linux 下 ElasticSearch 安装配置及示例

点击下方的 提交请求 按钮,页面右方有回馈信息,“created”代表是否为新建。添加成功。

Linux 下 ElasticSearch 安装配置及示例

点击 浏览数据 ,在左侧 索引 下选择 megacorp,如图,

Linux 下 ElasticSearch 安装配置及示例

可以看到,一条 id 为 2 的记录被添加了。

(2)下面我们修改 id 为 2 的人的年龄为 15,把 about 信息去掉,并且加一项兴趣。

Linux 下 ElasticSearch 安装配置及示例

提交后,右侧有反馈信息,“created”为 false,因为我们这次不是新建而是修改。

Linux 下 ElasticSearch 安装配置及示例

返回浏览数据,id 为 2 的记录,年龄、兴趣等均已发生变化。

Linux 下 ElasticSearch 安装配置及示例

参考:
http://www.linuxidc.com/Linux/2015-02/114243.htm

Elasticsearch 教程系列文章

Linux 上安装部署 ElasticSearch 全程记录  http://www.linuxidc.com/Linux/2015-09/123241.htm

Elasticsearch 安装使用教程 http://www.linuxidc.com/Linux/2015-02/113615.htm

ElasticSearch 配置文件译文解析 http://www.linuxidc.com/Linux/2015-02/114244.htm

ElasticSearch 的工作机制  http://www.linuxidc.com/Linux/2014-11/109922.htm 

Elasticsearch 的安装,运行和基本配置 http://www.linuxidc.com/Linux/2016-07/133057.htm

使用 Elasticsearch + Logstash + Kibana 搭建日志集中分析平台实践  http://www.linuxidc.com/Linux/2015-12/126587.htm

Ubuntu 14.04 搭建 ELK 日志分析系统(Elasticsearch+Logstash+Kibana) http://www.linuxidc.com/Linux/2016-06/132618.htm

Elasticsearch1.7 升级到 2.3 实践总结  http://www.linuxidc.com/Linux/2016-11/137282.htm

Ubuntu 14.04 中 Elasticsearch 集群配置  http://www.linuxidc.com/Linux/2017-01/139460.htm

Elasticsearch-5.0.0 移植到 Ubuntu 16.04 http://www.linuxidc.com/Linux/2017-01/139505.htm

ElasticSearch 5.2.2 集群环境的搭建  http://www.linuxidc.com/Linux/2017-04/143136.htm

Linux 下安装搜索引擎 Elasticsearch  http://www.linuxidc.com/Linux/2017-05/144105.htm

CentOS 上安装 ElasticSearch 详解  http://www.linuxidc.com/Linux/2017-05/143766.htm

ElasticSearch 的详细介绍:请点这里
ElasticSearch 的下载地址:请点这里 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/144113.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4733字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中