如何在CentOS 7/6中安装Elasticsearch

时间:2019-05-19 01:26:45  来源:igfitidea点击:

Elasticsearch是一个灵活而强大的开源分布式实时搜索和分析引擎。
使用一组简单的api就可以进行全文搜索。
Elasticsearch在Apache 2许可下免费提供,它提供了最大的灵活性。
本教程将在CentOS、Red Hat和Fedora系统上设置Elasticsearch单节点集群。

第1步-准备

在任何系统上安装Elasticsearch都需要Java。
我们可以通过执行以下命令来检查已安装的Java版本。

java -version

步骤2 -设置Yum存储库

首先,为elasticsearch rpm包安装GPG key。

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

然后为elasticsearch创建yum存储库文件。
编辑 /etc/yum.repos.d/elasticsearch.repo 文件:

sudo vi /etc/yum.repos.d/elasticsearch.repo

添加以下内容:

[Elasticsearch-7]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

步骤3 -安装Elasticsearch

添加yum repository后,只需在CentOS和RHEL系统上使用以下命令安装Elasticsearch:

sudo yum install elasticsearch

安装成功后,编辑Elasticsearch配置文件 “/etc/elasticsearch/elasticsearch.yml”
,将 network.host 设置为 localhost

我们还可以将其更改为系统LAP IP地址,以便通过网络访问。

vim /etc/elasticsearch/elasticsearch.yml

network.host: localhost

或者
network.host: 服务器ip地址

然后启用elasticsearch服务并启动它。

sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

ElasticSearch已经成功安装并在CentOS或RHEL系统上运行。
运行以下命令来验证服务:

curl -X GET "localhost:9200/?pretty"

你会看到类似如下的结果:

{
  "name" : "theitroad",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "HY8HoLHnRCeb3QzXnTcmrQ",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

步骤4 - Elasticsearch示例(可选)

下面的示例将在Elasticsearch集群中添加、获取和搜索数据。

创建新的Bucket

curl -XPUT http://localhost:9200/mybucket

输出:

{"acknowledged":true}

向Elasticsearch添加数据

使用以下命令在Elasticsearch中添加一些数据。

命令1:

curl -XPUT 'http://localhost:9200/mybucket/user/johny' -d '{ "name" : "Hyman Kumar" }'

输出:

{"_index":"mybucket","_type":"user","_id":"johny","_version":1,"created":true}

命令2:

curl -XPUT 'http://localhost:9200/mybucket/post/1' -d '
{
    "user": "Hyman",
    "postDate": "01-15-2015",
    "body": "This is Demo Post 1 in Elasticsearch" ,
    "title": "Demo Post 1"
}'

输出:

{"_index":"mybucket","_type":"post","_id":"1","_version":1,"created":true}

命令3:

curl -XPUT 'http://localhost:9200/mybucket/post/2' -d '
{
    "user": "theitroad",
    "postDate": "01-15-2015",
    "body": "This is Demo Post 2 in Elasticsearch" ,
    "title": "Demo Post 2"
}'

输出:

{"_index":"mybucket","_type":"post","_id":"2","_version":1,"created":true}

从Elasticsearch获取数据

使用以下命令从ElasticSearch获取数据并读取输出。

curl -XGET 'http://localhost:9200/mybucket/user/johny?pretty=true'
curl -XGET 'http://localhost:9200/mybucket/post/1?pretty=true'
curl -XGET 'http://localhost:9200/mybucket/post/2?pretty=true'

在Elasticsearch中进行搜索

使用以下命令在Elasticsearch中搜索数据。
下面的命令将搜索与用户johny相关的所有数据。

curl 'http://localhost:9200/mybucket/post/_search?q=user:theitroad&pretty=true'

输出:

{
  "took" : 145,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 0.30685282,
    "hits" : [ {
      "_index" : "mybucket",
      "_type" : "post",
      "_id" : "2",
      "_score" : 0.30685282,
      "_source":
{
    "user": "theitroad",
    "postDate": "01-15-2015",
    "body": "This is Demo Post 2 in Elasticsearch" ,
    "title": "Demo Post 2"
}
    } ]
  }
}

现在我们已经在Linux系统上成功配置了elasticsearch单节点集群。