浅析ElasticSearch在CentOS环境下的部署与应用
2020-12-30
编者按:ElasticSearch是一款分布式的搜索及分析引擎,在建立索引、搜索以及数据分析方面都有着非常优异的表现。本文笔者详细介绍了该引擎的部署细节与如何应用。
ElasticSear ch能够对所有类型数据进行实时的搜索及分析,无论是结构化或者非结构化的文本、数值数据、地理空间数据,ElasticSearch都能对数据进行存储并建立一种能支持高速搜索的索引。
ElasticSearch不止能简单地检索信息,还可以整合信息以发现数据中的规律及趋势。ElasticSearch的分布式特性使之能够很好地适应数据和查询量的不断增加,除此之外,ElasticSearch还能在各种情形下高效、灵活地处理数据,例如:
在应用程序或者网站中添加搜索框;
存储并分析日志、指标数据以及安全事件数据;
利用机器学习自动地、实时地为数据建立模型;
使用ElasticSearch作为存储引擎实现业务工作流的自动化;
使用ElasticSearch作为地理信息系统管理、集成和分析空间信息数据;
使用ElasticSearch作为生物信息学研究工具存储和处理遗传信息数据。
近年来,人们使用Elast icSearch的创新方式越来越多,但是无论是在上述几种情况下,还是在处理一些新的问题时,ElasticSearch处理数据、文档以及索引的基本原理都是不变的。
安装部署ElasticSearch
ElasticSearch的有两种部署方式,一种是创建一个托管在Elasticsearch Service上的服务,另一种是在本地的服务器上部署一个多节点的集群。在本文中,将详细介绍如何在CentOS系统环境下创建一个拥有三个节点的ElasticSearch集群。
1.新建1台装有CentOS系统的虚拟机(主机IP为172.16.24.118),安装好JDK并配置好环境变量,此过程不再赘述。
2.将下载好的ElasticS earch安装包上传到虚拟机中并解压。(命令:#tar -zxvf elasticsearch-6.4.3.tar.gz)
3.修改elasticsearch-6.4.3/config/elasticsea rch.yml文件中以下内容:
network.host:172.16.2 4.117
http.port:9200
4.在/etc/sysctl.conf文件中添加以下内容:
vm.max_map_count=6553 60
并执行命令#sysctl -p。
5.在/etc/security/limits.conf文件中添加以下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
6.因为无法直接从root用户启动ElasticSearch,所以我们新建一个用户user1并给用户赋权,执行命令如下:
#groupadd es
#useradd user1 -g es-p 123456
切换到/usr/local目录下并执行命令:
#chown -R user1:es elasticsearch-6.4.3
7.执行下列命令以关闭防火墙并启动ElasticSearch
#systemctl stop firew alld.service
#cd/usr/local/elasticsearch-6.4.3/bin
#./elasticsearch
8.通过浏览器访问http:/172.16.24.118:9200以验证是否启动成功。
9.将上述已经安装好ElasticSearch的虚拟机克隆两台。(将IP地址分别修改为:172.16.24.117和172.16.24.116)
对elasticsearch-6.4.3/config/elasticsearch.yml文件进行以下修改。
cluster.name:myes(保证三个节点集群名称是相同的)
node.name:node-1(确保每个节点名称不一样,其他两台分别为node-2,node-3)
network.host:172.16.2 4.118(当前服务器IP地址)
discovery.zen.ping.unicast.hosts:["172.16.24.118","172.16.24.117","172.16.24.116"]
discovery.zen.minimum_master_nodes:1
10.启动三台服务器的elasticsearch服务,并通过浏览器访问http://172.16.24.118:9200/_cat/nodes?P retty来验证集群是否创建成功。
11.下面我们对Elastic Search进行一些测试(为了方便起见,我们通过一款叫做postman的软件进行测试)。
(1)通过向服务器发送下列HTTP请求以建立索引并定义类型:http://localhost:9200/local_mst_student_idx_1,返回。
(2)向新建的索引中添加数据。
(3)向elasticsearch发送查询请求。
后记
Elasticsearch把操作都封装成了HTTP的API,用户只需给Elasticsearch发送HTTP请求就能完成相关操作。除了用上述的方法安装部署ElasticSearch以外,各位还可以尝试用其他方式部署。
例 如,在Docker容 器中运行Elasticsearch、在Linux系统中用DEB包或者RPM包安装Elasticsearch、利用Homebrew在macOS环境下安装等。
大家可以前往ElasticS earch官方网站查看更多关于该软件的安装及使用方法介绍。