摘要:世上有三类书籍:1、介绍知识,2、阐述理论,3、工具书;世间也存在两类知识:1、技术,2、思想。以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknowledge(技术)”。但其中也穿插一些我个人的理解。敬请指正。
 
关键词:ElasticSearch, 搜索引擎, 集群, 大数据, Solr, 大数据
三类书籍 和 两类知识:
 
        书:  【1】有一些书是对某一新知识领域的介绍,将此知识领域从头到尾、从内而外剖开了分析,吸收这些知识主要在于“记忆”,(也有“领会”)。【2】而有一些好书,往往整本书就是在阐述一句或几句话,一个或数个思想,这些就是这本书最重要的部分,主要在于“领会”。【3】还有一些书可能就像是工具,例如字典,遇到问题去查就好,主要在“查找”。也有各种类型掺杂的书。这几类书各有其方向、着重点,阅读时方法也不尽相同。
 
   知识:    【1】对于各种林林总总的技术,无论是它的安装步骤、使用说明还是其疑难杂症,电子书、在网络中的文章及FAQ中总是会有解决办法;或者技术它存有尚未解决的问题、待修复的BUG,也大部分能在网上找到答案,(不能找到的就等你来发明和创造了,诺贝尔奖就靠你咯!)。上面这些都属于“techknowledge(技术)”的范畴,就像第一类或第三类书,主要在于“记忆”或“查找”。【2】可是,还有一些思想上的、认知上的东西,网上是很难获取的,也很不容易表达清楚,它们应该归类于“Thinking(思想)”,像是第二类书籍,重点在于“领会”。在分享“techknowledge(技术)”的同时,我更希望把这些“Thinking(思想)”分享出来。
 
        以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknowledge(技术)”。但其中也穿插一些我个人的理解。敬请指正。
 

  

〇、环境配置

服务器: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目前也有不少亟需解决的问题,以后有空再聊。

 
之前Hbase和Solr使用的较多。最近关于大数据分析我有很多的感悟啊。有关于搜索引擎的,有关于分布式存储的,还有关于分布式计算的。有时间再分享给大家。欢迎大家指正!:)
 
明天就是十一长假后的第一天班啦!加油吧 王安琪!

我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知的更多相关文章

  1. Elasticsearch学习总结 (Centos7下Elasticsearch集群部署记录)

    一.  ElasticSearch简单介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticse ...

  2. Linux中Elasticsearch集群部署

    1.下载安装包elasticsearch-6.3.1  安装包自己下载,网上很多 2.安装位置在cd /usr/local/elasticsearch/目录下 3.因为ES使用root权限运行会报错, ...

  3. elasticsearch集群部署

    启动elk: zjtest7-redis:/usr/local/elasticsearch-2.3.4/bin# ./elasticsearch -d 后台运行 访问: http://192.168. ...

  4. elasticsearch集群部署以及head插件安装

    环境准备 elasticsearch是Java程序写的因此必须装jdk,否则使用不了. [root@openstack ~]# java -versionopenjdk version "1 ...

  5. Kafka 集群在马蜂窝大数据平台的优化与应用扩展

    马蜂窝技术原创文章,更多干货请订阅公众号:mfwtech Kafka 是当下热门的消息队列中间件,它可以实时地处理海量数据,具备高吞吐.低延时等特性及可靠的消息异步传递机制,可以很好地解决不同系统间数 ...

  6. elasticsearch 集群部署,版本 5.5.0

    准备说明: 两台服务器 Ip分别为 192.168.239.78(主),192.168.239.49(从) 主服务器上配置如下:1.上传es5.5.0版本至主服务器2.解压 unzipunzip el ...

  7. Elasticsearch 集群部署

    本文部署环境 $ cat /etc/redhat-release CentOS Linux release (Core) 部署前系统优化 $ /etc/security/limits.conf roo ...

  8. 谈一谈Elasticsearch的集群部署

      Elasticsearch天生就支持分布式部署,通过集群部署可以提高系统的可用性.本文重点谈一谈Elasticsearch的集群节点相关问题,搞清楚这些是进行Elasticsearch集群部署和拓 ...

  9. Elasticsearch系列---生产集群部署(下)

    概要 本篇继续讲解Elasticsearch集群部署的细节问题 集群重启问题 如果我们的Elasticsearch集群做了一些离线的维护操作时,如扩容磁盘,升级版本等,需要对集群进行启动,节点数较多时 ...

随机推荐

  1. Scalaz(5)- typeclass:my typeclass scalaz style-demo

    我们在上一篇讨论中介绍了一些基本的由scalaz提供的typeclass.这些基本typeclass主要的作用是通过操作符来保证类型安全,也就是在前期编译时就由compiler来发现错误.在这篇讨论中 ...

  2. 【FOL】第九周

    不知不觉又是三周过去了. 这几周忙了一下,其他时间全都在搞服务端,简直是酸爽的不行...不过还好出了些成果. 目前服务端有: 1.版本服务:游戏版本更新 2.账号服务:用户身份验证,返回各种连接(代理 ...

  3. PHP内核探索之变量(5)- session的基本原理

    这次说说session. session可以说是当前互联网提到的最多的名词之一了.它的含义很宽泛,可以指任何一次完整的事务交互(会话):如发送一次HTTP请求并接受响应,执行一条SQL语句都可以看做一 ...

  4. Android 亮度调节

    最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看, ...

  5. css知多少(2)——学习css的思路

    两周之前写过该系列的第一篇,其实当时只是一个想法,这段时间迟迟未更新,是在思考一个解决过程.现在初有成效,就开更吧. 1. 一个段子 开题不必太严肃,写博客也不像写书,像聊天似的写东西是最好的表达方式 ...

  6. 基于 jQuery 实现垂直滑动的手风琴效果

    今天我们要与大家分享一个漂亮而灵活的垂直 jQuery 手风琴效果.其主要思想是扩大手风琴片上的点击和显示更多的信息.其他内容片段将变得不那么透明.当使用一个导航箭头导航下一个片段,新的片会从顶部或底 ...

  7. CSS3中DIV水平垂直居中-2(3)

    用到CSS3中display的新属性. HTML <div class="parent"> </div> CSS html,body{ width: 100 ...

  8. WinForm-GridView

    前端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CKXM.aspx. ...

  9. 向ArcGIS的ToolBarControl中添加任意的windows控件的方法

    概要:在使用ArcEngine开发中,给ToolbarControl添加按钮形式的命令项相信大家都很熟悉了,因为网上的例子很多.但这种使用click调用功能的方式只能满足大部分用户在体验方面的需求,除 ...

  10. html ul li的学习

    DIV+CSS里,我们用得最多的就是ul li来显示数据,如新闻按钮等. <div id="menu"> <ul> <li><a href ...