linux下elasticsearch 安装、配置及示例「建议收藏」

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

大家好,又见面了,我是你们的朋友全栈君。

简介
开始学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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148909.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • hibernate5二级缓存配置

    hibernate5二级缓存配置hibernate默认有一个一级缓存,就是默认的Session缓存,当我们做了一次查询,hibernate会把这个结果缓存起来,叫做一级缓存,当我们接着在这个Session会话里面再做一次同样条件的查询,hibernate不会再次查询数据库,而是直接在一级缓存中获取结果并返回。一级缓存是内置的,他也不能被卸载。一级缓存是指在同一个Session会话内的查询做的缓存,如果跨了Session,或者当前…

  • 更改PyCharm背景以及一些实用的小插件

    更改PyCharm背景以及一些实用的小插件更改PyCharm背景以及一些实用的小插件好嘛,是不是有的时候敲代码总是会无聊和犯困。是不是觉得背景总是太单调没有欲望。废话不多,上图这是我的界面,而你的界面呢?或者是这样?今天来教你们设置背景,不需要下载任何东西首先>>>>点开File–>Settings然后跳出来Settings界面>>>>点击Appearance&Behavior–>Appearance然后点击>>>

  • 什么软件可以测试网络的稳定性,网络稳定性测试软件

    什么软件可以测试网络的稳定性,网络稳定性测试软件@ECHOoffcolor0Aecho欢迎进行网络稳定状况测试(测试开始时间%date%%time%)echo=======================================================================echo运行脚本后不要关闭这个窗口,让它一直测试你的网络,不想测试了需手动关闭echo当你老掉线的时候运行本脚本,建议测试时间在30分钟左…

  • RESTful介绍和使用教程

    RESTful介绍和使用教程REST(RepresentationalStateTransfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)。…

    2022年10月23日
  • SecureCRT乱码问题解决方法[通俗易懂]

    网上有很多达人给出了SecureCRT登录linux,中文乱码问题的解决办法,我这里总结一下解决思路,原因还是SecureCRT客户端字体/字符集的原因,主要分以下两种情况解决:一后台刷日志时(tail–flogs/jboss_stdout.log)
    首先,确保Linux下的文件(比如日志)在Windows下打开没有乱码,显示正常就表明linux的字符集设置没有问题,不用去修改;
    其次,修改SecureCRT中的SessionOptions参数配置,如图中的红框:

  • springaop与aspectjweaver

    springaop与aspectjweaverorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname’sysScheduleUserDateServiceImpl’definedinURL[jar:file:/C:/Users/Administrator/.m2/repository/com/ruoyi/ruoyi-schedule-one/3.4.0/ruoyi-schedule-one-3.4.0.jar!/com/ruo

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号