关闭

linux下elasticsearch 安装、配置及示例

标签: elasticsearch单机-分布式es搜索引擎
56243人阅读 评论(20) 收藏 举报
分类:

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

hostname IP es节点
master 192.168.137.100 node1、node3
slave 192.168.137.101 node2

注意:先去 /etc/hosts 文件里,将主机名修改为 master、slave,或者在本文用到hostname的地方改为你的主机名。

2017.8.28 博文更新 es的主节点是选出来的,它不一定在master 机器上,也就是es主节点不一定非得是node1或node2,也可能是node3.

一、下载及配置

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"
#节点名字。

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.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

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

四、添加索引

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

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的人的信息。

这里写图片描述

图2

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

这里写图片描述

图3

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

这里写图片描述

图4

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

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

这里写图片描述

图5

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

这里写图片描述

图6

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

这里写图片描述

图7

参考:
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

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

16
1
查看评论

windows 下安装elasticsearch

之前讲了 linux下elasticsearch 安装、配置及示例,本文是在Windows环境下安装elasticserach。1.下载2017-8-25博文更新 —-下载地址 原elasticsearch下载地址失效,请点此下载elasticsearch-5.5.0因为es5.5.0的文件目录和...
  • sinat_28224453
  • sinat_28224453
  • 2016-05-27 13:38
  • 27078

ElasticSearch概述及Linux下的单机ElasticSearch安装

这两天在项目中要涉及到ElasticSearch的使用,就上网去搜索了一些这方面的资料,发现elasticSearch的安装分为单机和集群两种方式。在本例中,我们重点介绍单机下的ElasticSearch的安装,亲测可用,记录下来与各位同仁分享。一、ElasticSearch概述ElasticSea...
  • w12345_ww
  • w12345_ww
  • 2016-08-11 15:48
  • 7261

elasticsearch安装及使用示例

相关环境:centos6.6、jdk1.8_0_40、ES2.4.3 注意:ES的执行不能使用root用户,需先新建一个用户并授权 1.将下载好的elasticsearch-2.4.3.tar.gz上传到Linux下 2.解压:tar -zxvf elasticsearch-2.4.3.t...
  • sinat_27747695
  • sinat_27747695
  • 2017-06-05 13:38
  • 505

生产环境elasticsearch的配置建议

以下主要来自官方文档,主要分为几块: 硬件方面 内存 CPU 硬盘 网络 其他常用注意 操作系统 较大的文件描述符 设置MMap 管理工具 JVM虚拟机 请不要调整JVM设置 请不要修改垃圾收集器 给lucene留下一半的内存空间 不要超过32G 避免过大的使用内存 swapping是性能的死穴 E...
  • thomas0yang
  • thomas0yang
  • 2017-02-17 17:38
  • 6853

Elasticsearch - 配置详解

1.1. 配置详解elasticsearch的config文件夹里面有两个配置文 件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日 志的,所以logging.yml里的设置按...
  • xifeijian
  • xifeijian
  • 2015-11-03 16:14
  • 16840

ElasticSearch 各模块介绍及参数配置详解

ElasticSearch包含模块由集群管理Cluster、分片管理Shards、副本管理Replicas、恢复管理Recovery、数据源管理River、持久化存储管理Gateway、节点自动发现管理Discovery.zen、交互模块Transport。 Cluster 代表一个集群,集群...
  • u010039929
  • u010039929
  • 2017-02-24 14:29
  • 3675

elasticsearch 配置详解

elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下e...
  • qinfei_635879582
  • qinfei_635879582
  • 2016-06-07 13:55
  • 3628

Elasticsearch5.2 基本设置

Elasticsearch是一个使用Java构建的分布式的RESTful搜索和分析引擎,所以需要java运行环境,官方提示只支持Oracle的Java和OpenJDK并且所有Elasticsea
  • taoshujian
  • taoshujian
  • 2017-03-31 10:25
  • 4944

ElasticSearch5.0 基本概念和配置

一、说明几个重要的配置文件 #/etc/sysconfig/elasticsearch 配置elasticsearch环境变量 #/etc/elasticsearch/elasticsearch.yml 配置elasticsearch集群 #/etc/elasticsearch...
  • smilepasta035
  • smilepasta035
  • 2017-06-26 18:07
  • 555

elasticsearch配置文件详解

elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下e...
  • gua___gua
  • gua___gua
  • 2016-07-11 18:39
  • 325
    个人资料
    • 访问:174918次
    • 积分:1084
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:0篇
    • 译文:4篇
    • 评论:56条
    文章分类
    最新评论