我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知
〇、环境配置
服务器:3台(node1 -> node3)
操作系统:Cent OS 5.6,添加普通用户angelwang
ElasticSearch版本:1.7.1
JDK版本:1.8
一、安装JDK(所有服务器)
在每台服务器(node1 -> node3)上安装JDK,安装过程略。
以下二至六步可以选取某台服务器执行。
二、安装ElasticSearch
1、下载elasticsearch-1.7.1.tar.gz
2、解压:[angelwang@node1 ~]$ tar -xf elasticsearch-1.4.2.tar.gz
三、安装elasticsearch-head插件
elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序。
1、联网环境,执行下面语句进行安装:
[angelwang@node1 ~]$ ./elasticsearch-1.7.1/bin/plugin -install mobz/elasticsearch-head
2、离线安装:
[angelwang@node190 ~]$ unzip elasticsearch-head-master.zip
[angelwang@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins
[angelwang@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head
[angelwang@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head/_site
[angelwang@node1 ~]$ cp -r ~/elasticsearch-head-master/* ./elasticsearch-1.7.1/plugins/head/_site
在执行:[angelwang@node190 ~]$ ./elasticsearch-1.7.1/bin/elasticsearch
启动ElasticSearch后,可以通过访问:http://node1:9200/_plugin/head/,
可以看到如下图:

四、安装elasticsearch-sql插件
elasticsearch-sql插件可以做到:Query elasticsearch using familiar SQL syntax. You can also use ES functions in SQL.
执行下面语句进行安装:
[angelwang@node1 ~]$ ./bin/plugin -u https://github.com/NLPchina/elasticsearch-sql/releases/download/1.3.5/elasticsearch-sql-1.3.5.zip --install sql
在启动ElasticSearch后,可以通过访问:http://localhost:9200/_plugin/sql/,
可以看到如下图:

看到这个界面你也能想像到它是做什么的了吧?更多的信息可以去 https://github.com/NLPchina/elasticsearch-sql 获取,当然不能通过elasticsearch-sql把elasticsearch当关系型数据库用,但毕竟elasticsearch的查询语句不如solr那般简洁,所以对于熟悉sql的朋友,这样拼sql语句也是很方便的吧。此工具的开发者真是体贴。
五、安装elasticsearch-Bigdesk插件
bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。
1、联网环境
[angelwang@node1 ~]$ ./bin/plugin -install lukas-vlcek/bigdesk
在启动ElasticSearch后,可以通过访问:http://node1:9200/_plugin/bigdesk/,
可以看到如下图:


这个插件使得elasticsearch太直观了,数据在哪、怎么变动的、流动的过程都显示的一清二楚,很酷炫,大赞!为啥Solr没有这样的东东呢?
六、安装elasticsearch-servicewrapper插件
elasticsearch-servicewrapper插件是ElasticSearch的服务化插件。
在https://github.com/elasticsearch/elasticsearch-servicewrapper下载该插件后,解压缩。将service目录拷贝到elasticsearch目录的bin目录下。
而后,可以通过执行以下语句安装、启动、停止ElasticSearch。(先不要执行)
[root@node1 service]# sh elasticsearch install (Must be root to perform this action.)
[root@node1 service]# sh elasticsearch start
[root@node1 service]# sh elasticsearch stop
这个插件也是实用的不要不要的。没有此插件,有多少人还要写一个脚本来开机启动啊。需要的请举手!
七、将配置好的ElasticSearch拷贝到各服务器
在一台服务器上执行完成步骤二到步骤七后,得到最终的elasticsearch-1.7.1文件夹。将此文件夹打包并scp拷贝到各服务器。
八、配置ElasticSearch集群
在各服务器(node1 -> node3)中。
执行下面语句对配置文件elasticsearch.yml中的内容进行修改:
[angelwang@node1 ~]$ vim elasticsearch-1.7.1/config/elasticsearch.yml
修改elasticsearch.yml后的部分文件内容:
################################### Cluster ###################################
# Cluster name identifies your cluster for auto-discovery. If you're running
# multiple clusters on the same network, make sure you're using unique names.
#
cluster.name: elasticsearch_angelwang
#################################### Node #####################################
# Node names are generated dynamically on startup, so you're relieved
# from configuring them manually. You can tie this node to a specific name:
#
node.name: "node196"
九、启动ElasticSearch集群
可以通过执行sh elasticsearch start或./elasticsearch语句启动ElasticSearch。
也可以在通过执行[root@node1 service]# sh elasticsearch install后,通过执行:[root@node1 service]# chmod 777 /home/angelwang/elasticsearch-1.7.1/bin/service/elasticsearch,分配给elasticsearch执行权限。执行[root@node1 service]# /etc/init.d/elasticsearch start启动ElasticSearch服务。而后就可以执行[root@node1 service]# service elasticsearch start来启动ElasticSearch了。系统reboot后也能开机启动。
在所有服务器(node1 -> node3)上的ElasticSearch配置相同的cluster.name后,依次启动各服务器上的ElasticSearch,便可以通过bigdesk查看该集群下的所有node状态。集群启动结束。
十、ElasticSearch集群功能测试
可以在head页面新建索引、删除索引、数据浏览、查询等操作,新建索引时需要设置分片数、副本数,可以在bigdesk页面进行分片及副本的查看。
数据均存储于elasticsearch-1.7.1/data目录下,以cluster.name进行分目录存储。下图说明了两个cluster.name的存储方式。

我们对已启动的(node1 -> node3)上的ElasticSearch进行监控。下面图1 -> 图4是当集群中一个node重启时,集群内数据复制移动的过程。索引的分片数为5,副本数为1。

图1: 三个node稳定后 图2: 关闭一个node196

图3: 两个node稳定后 图4: 启动node196,恢复三个node稳定后
可以通过上面的操作和形象的图形,看到宕机一个对这个集群真是一点关系都没有,数据在各服务器间自如流动、分布,各服务器并无主次之分,因此ES的可用性真的是很好!
Solr我也用过很久,我个人感觉,ElasticSearch比Solr好就好在有那么多好用的插件可以用,即有形象直观的显示,又有方便实用的工具,真是感谢这些开源贡献者们,没有你们就没有这么一个好用的搜索引擎ElasticSearch了,很多的公司业务也便无法开展了!当然ElasticSearch目前也有不少亟需解决的问题,以后有空再聊。
我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知的更多相关文章
- Elasticsearch学习总结 (Centos7下Elasticsearch集群部署记录)
一. ElasticSearch简单介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticse ...
- Linux中Elasticsearch集群部署
1.下载安装包elasticsearch-6.3.1 安装包自己下载,网上很多 2.安装位置在cd /usr/local/elasticsearch/目录下 3.因为ES使用root权限运行会报错, ...
- elasticsearch集群部署
启动elk: zjtest7-redis:/usr/local/elasticsearch-2.3.4/bin# ./elasticsearch -d 后台运行 访问: http://192.168. ...
- elasticsearch集群部署以及head插件安装
环境准备 elasticsearch是Java程序写的因此必须装jdk,否则使用不了. [root@openstack ~]# java -versionopenjdk version "1 ...
- Kafka 集群在马蜂窝大数据平台的优化与应用扩展
马蜂窝技术原创文章,更多干货请订阅公众号:mfwtech Kafka 是当下热门的消息队列中间件,它可以实时地处理海量数据,具备高吞吐.低延时等特性及可靠的消息异步传递机制,可以很好地解决不同系统间数 ...
- elasticsearch 集群部署,版本 5.5.0
准备说明: 两台服务器 Ip分别为 192.168.239.78(主),192.168.239.49(从) 主服务器上配置如下:1.上传es5.5.0版本至主服务器2.解压 unzipunzip el ...
- Elasticsearch 集群部署
本文部署环境 $ cat /etc/redhat-release CentOS Linux release (Core) 部署前系统优化 $ /etc/security/limits.conf roo ...
- 谈一谈Elasticsearch的集群部署
Elasticsearch天生就支持分布式部署,通过集群部署可以提高系统的可用性.本文重点谈一谈Elasticsearch的集群节点相关问题,搞清楚这些是进行Elasticsearch集群部署和拓 ...
- Elasticsearch系列---生产集群部署(下)
概要 本篇继续讲解Elasticsearch集群部署的细节问题 集群重启问题 如果我们的Elasticsearch集群做了一些离线的维护操作时,如扩容磁盘,升级版本等,需要对集群进行启动,节点数较多时 ...
随机推荐
- PHP团队编码质量提升之道
这段文字其实只是标题党. 目前PHP猿的薪资水平普遍较高,但其实绝大多数PHP猿都不是科班出身,你问一个什么是OOP的问题可能都说不清楚. 在团队中,除了费力的去普及编程语言的基础知识,要想提高开发质 ...
- 通过HttpWebRequest请求https接口
一.为什么进行代理接口的开发: 有些项目需要访问被墙了哒网站,比如前不久公司开发项目需要使用google地图的接口,而google在中国被墙了,所有打算做一个代理接口服务,将代理放到国外服务器上,通过 ...
- Gym 100917J---dir -C(RMQ--ST)
题目链接 http://codeforces.com/gym/100917/problem/D problem description Famous Berland coder and IT mana ...
- Verilog学习笔记认识提升篇(一)...............时序的基本概念(待补充)
建立和保持时间: 建立时间(Tsu)是指在时钟上升沿到来之前数据必须保持稳定的时间,保持时间(Th)是指在时钟上升沿到来以后数据必须保持稳定的时间.一个数据需要在时钟的上升沿被锁存,那么这个数据就必须 ...
- PHP 导出Excel 文档
下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...
- FilterDispatcher已被标注为过时解决办法 >>> FilterDispatcher <<< is deprecated!
一些struts2的教程都是比较早的,当我们基于较新版本的struts2来实现代码的时候,往往会出现一些问题.比如这个警告:FilterDispatcher isdeprecated! 在web.xm ...
- ReportingServies——SQLServer报表开发综合实例
如果我们安装了sqlserver2008 R2,将会自动安装一个报表开发工具 不要以为此报表开发工具只适合于sqlserver2008,其实在sqlserver2012中也是支持的,事实上我现在项目中 ...
- mvc和iis工作原理
学习IIS & MVC的运行原理 我一直疑惑于以下问题,从客户端发出一个请求,请求到达服务器端是怎样跟iis衔接起来的,而iis又是怎样读取我发布的代码的,并返回服务器上的文件.这其中是怎样的 ...
- Sequence.js 实现带有视差滚动特效的图片滑块
Sequence.js 功能齐全,除了能实现之前分享过的现代的图片滑动效果,还可以融合当前非常流行的视差滚动(Parallax Scrolling)效果.让多层背景以不同的速度移动,形成立体的运动效果 ...
- Unsplash.it - 实用的图片占位符,支持个性化设置
Unsplash.it 是一个使用漂亮的图像作为占位符的工具.只要把你的图像尺寸(宽与高)放到网址后面的参数中,你会得到一个占位符.你可以很容易地得到一个随机图像或者是一个模糊图像.也支持获取灰度图像 ...