`
kfcman
  • 浏览: 400060 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ElasticSearch集群部署总结

 
阅读更多
摘要:世上有三类书籍:1、介绍知识,2、阐述理论,3、工具书;世间也存在两类知识:1、技术,2、思想。以下是我在部署 ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknowledge(技术)”。但其中也穿插一些我个人的理解。敬请指 正。

 

 

 

关键词:ElasticSearch, 搜索引擎, 集群, 大数据, Solr, 大数据

 

 

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

  

〇、环境配置

服务器:3台(node1 -> node3)

操作系统:Cent OS 5.6,添加普通用户deploy

ElasticSearch版本:1.7.1

JDK版本:1.8

 

一、安装JDK(所有服务器)

在每台服务器(node1 -> node3)上安装JDK,安装过程略。

以下二至六步可以选取某台服务器执行。

 

二、安装ElasticSearch

1、下载elasticsearch-1.7.1.tar.gz

2、解压:[deploy@node1 ~]$ tar -xf elasticsearch-1.4.2.tar.gz

 

三、安装elasticsearch-head插件

 elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序。

1、联网环境,执行下面语句进行安装:

[deploy@node1 ~]$ ./elasticsearch-1.7.1/bin/plugin -install mobz/elasticsearch-head

 

2、离线安装:

[deploy@node190 ~]$ unzip elasticsearch-head-master.zip

[deploy@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins

[deploy@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head

[deploy@node1 ~]$ mkdir ./elasticsearch-1.7.1/plugins/head/_site

[deploy@node1 ~]$ cp -r ~/elasticsearch-head-master/* ./elasticsearch-1.7.1/plugins/head/_site

 

在执行:[deploy@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.

执行下面语句进行安装:

[deploy@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、联网环境

[deploy@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中的内容进行修改:

[deploy@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_deploy

  

#################################### 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/deploy/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稳定后

 

 

可以通过上面的操作和形象的图形,看到宕机一个对这个集群真是一点关系都没有,数据在各服务器间自如流动、分布,各服务器并无主次之分。

 

Solr 我也用过很久,我个人感觉,ElasticSearch比Solr好就好在有那么多好用的插件可以用,即有形象直观的显示,又有方便实用的工具,真是感谢 这些开源贡献者们,没有你们就没有这么一个好用的搜索引擎ElasticSearch了,很多的公司业务也便无法开展了!当然ElasticSearch 目前也有不少亟需解决的问题,以后有空再聊。

 

 

http://itindex.net/detail/54467-elasticsearch-%E9%9B%86%E7%BE%A4-%E6%80%BB%E7%BB%93

http://itindex.net/

分享到:
评论

相关推荐

    elasticsearch集群化搭建

    ### Elasticsearch集群化搭建详解 #### 一、概述 Elasticsearch 是一款基于 Lucene 的分布式搜索引擎,它提供了全文检索...通过本文的操作指南,可以快速完成 Elasticsearch 集群的部署,并解决常见的索引断裂问题。

    Kubernetes1.6集群部署完全指南——二进制文件部署开启TLS基于CentOS7

    ### Kubernetes 1.6 集群部署完全指南:二进制文件部署开启 TLS 基于 CentOS 7 #### 概述 本指南旨在详细介绍如何在 CentOS 7 系统上通过二进制文件部署的方式搭建一个启用 TLS 的 Kubernetes 1.6 集群。TLS...

    elasticsearch环境部署测试

    以上是关于Elasticsearch环境部署与测试的主要知识点总结,包括基本概念、安装步骤、配置要点、命令操作及集群角色等。通过对这些内容的学习与实践,可以帮助用户更好地理解和掌握Elasticsearch的应用与管理。

    elasticsearch未授权访问 漏洞修复

    总结,确保 Elasticsearch 的安全性至关重要。启用安全功能、设置用户密码以及使用 SSL/TLS 加密通信是防止未授权访问的基本措施。在集群环境中,还需确保所有节点的安全配置一致,证书分发到位。遵循这些步骤,你...

    elasticSearch 详细介绍,集群部署,常用API 常用插件 SQL使用

    ElasticSearch (简称 ES) 是一款基于 Lucene 的开源搜索和分析引擎,它提供了强大的分布式搜索功能,适用于大规模数据集的实时搜索场景。ES 使用 Java 开发,并在 Apache 许可下免费发布。作为一个成熟的企业级解决...

    elasticsearch 一键安装脚本.zip

    "elasticsearch 一键安装脚本.zip" 是一个强大的工具,它为IT专业人员提供了快速部署和卸载Elasticsearch集群的途径,降低了操作门槛,提升了工作效率。通过理解并运用这个脚本,用户不仅可以轻松管理Elasticsearch...

    G04-杨樾人-基于Elasticsearch集群的数据查询优化1

    **二、Elasticsearch的集群部署** 1. **ES概念简介** Elasticsearch集群是由多个节点(Node)组成的,每个节点负责一部分数据的存储和处理。节点之间通过网络进行通信,共同维护整个集群的状态。 2. **Elastic...

    elasticsearch集群

    在构建大型应用时,通常会将 Elasticsearch 部署为集群,以实现更高的可用性和数据处理能力。 ### 1. 集群概念 Elasticsearch 集群是由多个节点(Node)组成,这些节点通过网络连接协同工作,共同存储和处理数据。...

    elasticsearch5.5.1部署手册1

    总结,成功部署Elasticsearch 5.5.1需要正确配置系统环境,合理调整资源限制,并遵循非root用户运行的原则。了解这些步骤,可以帮助你顺利地在CentOS 6.4环境中搭建起Elasticsearch服务,为后续的数据检索、分析和...

    elasticsearch服务部署工具-快速检索

    总结来说,Elasticsearch作为一个强大的全文搜索引擎,其部署和使用涉及到众多细节。理解其核心概念,合理配置,以及善用插件和查询语言,将帮助我们实现快速、高效的检索服务。提供的"elasticsearch服务安装资料...

    ES安装和部署简要手册

    - **配置Elasticsearch**:通过编辑/opt/elasticsearch-7.3.0/config/elasticsearch.yml文件进行ES集群配置。需要配置的选项包括: - **集群名称**(cluster.name): 必须为所有节点配置相同的集群名称,示例中为...

    elasticsearch6.4.2集群安装配置笔记V1.2.docx

    总结,Elasticsearch 6.4.2 集群的安装配置是一项细致的工作,涉及到节点类型设定、集群通信、索引管理、分片策略等多个环节。理解并熟练掌握这些知识点,将有助于构建高性能、高可用的Elasticsearch搜索和分析系统...

    elasticsearch-header插件

    Elasticsearch Header 是一个专为 Elasticsearch 客户端设计的插件,它基于 Node.js 运行,旨在增强和扩展ES客户端的功能,特别是对于用户界面和交互方面提供了更丰富的头部信息支持。在本文中,我们将深入探讨该...

    elasticsearch-7.10.2.zip

    Elasticsearch(简称ES)是一款基于Lucene的开源、分布式全文搜索引擎。它以其高效、灵活、可扩展的特点,广泛应用于日志分析、实时监控、数据搜索等多个领域。在版本7.10.2中,Elasticsearch持续优化了性能,提升了...

    elasticsearch-7.8.0.rar

    Elasticsearch 7.8.0 提供了跨平台的支持,无论是 Linux 还是 Windows 环境,都能轻松部署。作为强大的搜索和分析引擎,其丰富的功能和易用性使其在大数据领域备受青睐。通过熟练掌握其使用,可以有效提升数据处理和...

    elasticsearch-head-master 部署包

    总结来说,elasticsearch-head-master 提供了一个简洁且美观的界面,使Elasticsearch的管理和监控变得直观易用,是Elasticsearch用户不可或缺的辅助工具。无论是新手还是经验丰富的开发者,都可以从中受益,提升工作...

    elasticsearch-8.1.2-windows-x86_64

    1. **分布式架构**:Elasticsearch天然支持分布式部署,可以处理海量数据,并实现数据的水平扩展。 2. **倒排索引**:通过倒排索引技术,Elasticsearch能快速进行全文搜索,支持复杂的查询语法和过滤条件。 3. **...

    ELK 8.13.4 集群部署

    ### ELK 8.13.4 集群部署知识点详解 #### 一、ELK简介 **ELK** 是 Elasticsearch、Logstash 和 Kibana 的缩写,这三个组件一起构成了一个强大的日志处理系统。 1. **Elasticsearch**:作为分布式搜索和分析引擎,...

Global site tag (gtag.js) - Google Analytics