文档章节

linux下elasticsearch 安装、配置及示例

ArlenXu
 ArlenXu
发布于 2017/07/10 19:35
字数 1703
阅读 51
收藏 1

简介
开始学es,我习惯边学边记,总结出现的问题和解决方法。本文是在两台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/ ,如图,

开始每个节点下是空白的,没有这些索引分片

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

四、添加索引

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

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

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

 

http://www.oschina.net/translate/elasticsearch-getting-started?cmp

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

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

参考:
http://www.cnblogs.com/huangfox/p/3543351.html
http://www.linuxidc.com/Linux/2015-02/114243.htm
http://my.oschina.net/u/579033/blog/394845?fromerr=Kt60ej6x

文档总结不易,希望能帮到各位,和各位一起进步,另,转载请标明出处。

© 著作权归作者所有

ArlenXu
粉丝 14
博文 109
码字总数 70492
作品 0
杭州
后端工程师
私信 提问
ELK 架构之 Elasticsearch、Kibana、Logstash 和 Filebeat 安装配置汇总(6.2.4 版本)

相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 架构之 Logstash 和 Filebeat 配置使用(采集过滤) Spring Boot 使用 Log4j2 之前...

foveni
05/04
0
0
Centos6搭建elk系统,监控IIS日志

**所需程序: 服务器端:java、elasticsearch、kikbana 客 户 端:IIS、logstash** 一、服务器端(192.168.10.46)操作: 先建立一个ELK专门的目录: [root@Cent65 ~]mkdir /elk/ 上传到elk...

D杀手D
2018/04/24
0
0
elastic search+kibana 5.6.12安装指南

前提准备: 1,安装jdk, We recommend installing Java version 1.8.0_131 or later. 2, 设置文件最大打开数(使用命令ulimit -n查看) ulimit -n 65536 3, 创建用户elastic/用户组elastic gro...

PageYi
2018/10/23
212
0
elasticsearch5.3安装插件head

1、下载并配置nodejs cd /usr/local/src/ wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz && xz -d node-v6.9.5-linux-x64.tar.xz tar -xvf node-v6.9.5-linux-x64.tar......

Airship
2018/12/20
76
0
elk5.6.0 centos7 及问题

elk5.6.0 centos7 及问题 将elasticsearch,kibana,logstash 三个压缩包放入/data/docker_images/elk 目录中 服务器ip:192.168.1.250 cd /data/docker_images/elk/ 1.安装elasticsearch 本......

zbill
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
21分钟前
6
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
53分钟前
10
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
54分钟前
10
0
oracle 初始化数据库脚本

create user lpf identified by 123456; create tablespace lpf_ts_cms datafile '/opt/app/oracle/product/11.2.0/lpf.dbf' size 200M; alter user lpf default tablespace lpf_ts_cms; sel......

internetafei
58分钟前
8
0
深入了解Redis底层数据结构

说明 说到Redis的数据结构,我们大概会很快想到Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set),以及他们的特点和运用场景。不过它们是...

TurboSanil
59分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部