Elasticsearch是一个开放源码,可广泛分发,易于扩展的企业级搜索引擎,可通过广泛而精细的API访问。它可以支持极快的搜索,支持您的数据发现应用程序,并可用于许多不同的用例,如“古典”全文搜索,分析商店,自动填充,拼写检查,警报引擎和通用文档存储。
分析工作负载往往会对事情进行统计,并总结您的大量数据,甚至可能是大数据。您可以使用它来进行模糊搜索,这是对于拼写错误的宽松搜索。在将模型搜索集中在CPU上之前,将数据传送到生产之前,先对实际数据进行测试,以便对搜索进行更改和改进始终至关重要,因此应谨慎添加,可能不是每个领域。Elasticsearch也有助于自动完成和即时搜索。用户类型可以以许多形式进行搜索,例如现有标签可以是简单的建议,尝试基于搜索历史来预测搜索,或者只是对每个节流按键进行全新的搜索。在Elasticsearch中有很多不同的功能来协助构建这些功能,比如match_phrase_prefix,前缀查询,索引克,以及一系列不同的建议。
本文是关于在单个CentOS 7服务器上安装多个Elasticsearch节点。
但是您可以使用在其他Linux发行版上执行的类似步骤,关于Linux的学习可以参考《Linux就该这么学》。
方法/步骤
准备工作
为了完成在单个服务器上安装和配置多个Elasticsearch节点的任务,您只需要使用root用户凭据访问您的服务器即可,您可以使用CentOS 6或CentOS 7,无论您喜欢为您的环境使用什么服务器。
我们先连接到您的服务器,然后创建非root用户。
#ssh root @ server_ip
1)添加新用户
使用root用户登录后,请使用以下命令创建在安装期间使用的新通用用户。
# adduser elasticsearch
Changing password for user elasticsearch.
New password:****
Retype new password: ****
passwd: all authentication tokens updated successfully.
将新用户添加到wheel组以给予sudo权限。
# usermod -aG wheel elasticsearch
2)系统更新
现在使用CentOS 7服务器上的以下命令更新您的系统与更新和安全补丁。
#yum update -y
3)安装Java(JVM)版本8
Elasticsearch使用Java来构建,至少需要Java 8才能运行。只支持Oracle的Java和OpenJDK。所有Elasticsearch节点和客户端都应使用相同的JVM版本。因此,建议必须安装炼岔露Java版本1.8.0_121或更高版本,否则如果使用任何其他版本的Java,Elasticsearch将拒绝启动。
Elasticsearch将使用的Java版本可以通过设置“JAVA_HOME”环境变量进行配置。一旦先决条件已经完成,移动到网络会话下载,安装然后配置节点。
如何下载Elasticsearch
Elasticsearch以多种包装格式提供,但'zip'和泪膨'tar.gz'包适合安装在任何系统上,这是开始使用Elasticsearch的最简单的选择。择怕“rpm”软件包更适合安装在Red Hat,Centos,SLES,OpenSuSE和其他基于RPM的系统上。它可以从Elasticsearch网站或从我们的RPM存储库使用'wget'命令下载。
我们来下载我们将在CentOS 7上安装的两个不同版本的Elastisearch软件包。
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.1.tar.gz
现在我们有两个不同版本的Elasticsearch软件包可供安装。提取存档并移动到提取的文件夹以编译和安装包。
$ tar -zxf elasticsearch-5.0.1.tar.gz
$ tar -zxf elasticsearch-5.2.2.tar.gz
3
配置Elasticsearch的第一个节点
现在先从最新版本的Elasticsearch开始安装。我们使用放在'config'目录中的命令行编辑器打开默认配置文件。
$ vim elasticsearch-5.2.2 / config / elasticsearch.yml
按'i'切换到插入模式,并在文件中插入以下配置参数。
cluster.name:elastic_cluster1
node.name:node-1
node.master:true
node.data:true
transport.host:localhost
transport.tcp.port:9300
http.port:9200
network.host:0.0.0.0
这里没有在默认配置中指定http.port和transport.port,ES尝试在启动时选择下一个可用端口,从9200开始,HTTP为9300,内部传输为9300。我们使用':wq!'保存并关闭配置文件。
4
配置辅助节点
要配置辅助节点,请打开放置在存档的默认位置的相同配置文件,并使用编辑器将以下内容插入其中。
$ vim elasticsearch-5.0.1 / config / elasticsearch.yml
保存并关闭文件。
5
如何启动Elasticsearch服务
由于我们已经配置了不同版本的Elasticsearch的两个节点,现在我们需要通过执行其二进制脚本在CentOS 7服务器上启动。
$ cd elasticsearch-5.2.2
$ bin / elasticsearch -d
这将在后台启动弹性搜索过程。现在将您的目录更改为弹性搜索的辅助节点,并运行相同的命令。
$ cd elasticsearch-5.0.1
$ bin / elasticsearch -d
就是这样,现在您可以检查侦听端口的状态,以确保两个节点都在配置中提到的特定端口上运行。
$ netstat -tlnp
$ ps -ef | grep elastic
6
确认服务是否成功启动
$ curl -X GET 'http://localhost:9200'
示例结果如下:
{
"name" : "node-1",
"cluster_name" : "elastic_cluster1",
"cluster_uuid" : "yrMHCKfJS2msgvQj-HWkag",
"version" : {
"number" : "5.2.2",
"build_hash" : "f9d9b74",
"build_date" : "2017-02-24T17:26:45.835Z",
"build_snapshot" : false,
"lucene_version" : "6.4.1"
},
"tagline" : "You Know, for Search"
}
类似地,在端口'9202'上运行的辅助节点使用以下命令。
$ curl -X GET 'http://localhost:9202'
示例结果如下:
{
"name" : "node-2",
"cluster_name" : "elastic_cluster1",
"cluster_uuid" : "I4Xk5Yr3RTuyp0Q0IsmxNQ",
"version" : {
"number" : "5.0.1",
"build_hash" : "080bb47",
"build_date" : "2016-11-11T22:08:49.812Z",
"build_snapshot" : false,
"lucene_version" : "6.2.1"
},
"tagline" : "You Know, for Search"
}
7
总结
在本文中,我们了解到在单个CentOS 7服务器上安装多个Elasticsearch节点。现在,您可以在Logstash中使用多种不同配置的Elasticsearch,某些分析用法,为大型索引提供面向用户的搜索以及许多内部应用程序。由于垃圾回收运行时间的原因,用大堆管理JVM是可怕的业务。最好是拥有更小的堆,因为它更容易捕获和分析堆转储。要获得最佳的Lucene性能,还需要有足够的RAM可用于索引文件的OS文件缓存。如果我们运行一个小堆的单个节点,那么我们将浪费CPU和RAM。
END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。