原创

Elasticsearch基础(二)——开发环境搭建

本章,我将搭建一个Elasticsearch开发环境,作为后续章节讲解的基础,各位可以跟着我一起进行手动搭建。

一、环境准备

1.1 ES版本选择

我们先去Elasticsearch的GitHub主页,看下它的版本变迁:https://github.com/elastic/elasticsearch/releases:



可以看到,现在最新的稳定版本是v7.6.0。我们也可以去的官方主页看下,v7.x版本相对于以前都哪些大的变动,然后根据自己的需求选择适合的版本:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/breaking-changes-7.0.html。

我这里直接以最新版本作为环境搭建的基础。

1.2 下载ES

前往Elasticsearch的官网:https://www.elastic.co/start进行下载。考虑到大多数童鞋用的是windows,我这里选择windows版本:



考虑到后面要用到Kibana作为图形界面展示,我们顺带把它也一起下载了:



下载完成后,自己找个目录解压缩。

1.3 JDK环境

Elasticsearch源码采用Java编写,所以运行时依赖于JVM,v7.6.0版本在根目录下有自带的openJDK供其使用。

所以如果想要使用自己的JDK,需要配置好JAVA_HOME环境变量,同时最好用JDK11+版本,因为Elasticsearch7.x推荐使用LTS版本的JDK。

Support Matrix:https://www.elastic.co/cn/support/matrix#matrix_jvm

二、启动Elasticsearch

2.1 启动ES

上面步骤都完成后,进入/bin目录,执行elasticsearch.bat启动Elasticsearch。启动完成后,在浏览器输入:http://localhost:9200/?pretty,若显示以下JSON报文,则说明启动成功:

{
  "name" : "DESKTOP-JGDSLQG",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "M7Hak1h6RRSeQyajXPr71g",
  "version" : {
    "number" : "7.6.0",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
    "build_date" : "2020-02-06T00:09:00.449973Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

上述报文可以看到ES集群名称、ES版本等信息。

2.2 启动Kibana

接着,我们启动Kibana,使用里面的UI界面,去操作Elasticsearch。Kibana的启动方式和ES类似,进入/bin目录,执行kibana.bat,启动完成后,在浏览器输入:http://localhost:5601,就可以进入Kibana的控制台了:



我们进入“Dev Tool”界面,输入GET _cluster/health测试下:



三、简单上手

搭建完了环境,我们就来上手体验下。Elasticsearch提供了一套Cat API,可以以 RESTful 的方式进行各种操作。

3.1 集群健康状况

默认情况下,我们创建的索引归属于“elasticsearch”集群,我们也可以自定义集群。我们先来看看如何了解集群的健康状况?在Elasticsearch中,集群的健康状况一共三种:green、yellow、red。

green:每个索引的primary shard和replica shard都是active状态的;
yellow:每个索引的primary shard都是active状态的,但是部分replica shard不是active状态(即不可用的状态);
red:部分索引的primary shard不是active状态,也就是部分索引有数据丢失了。

通过GET /_cat/health?v命令看到集群现在的健康状况:

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1583314274 09:31:14  elasticsearch green           1         1      3   3    0    0        0             0                  -                100.0%

3.2 索引操作

查询索引

GET /_cat/indices?v

可以看到,默认有三个索引:

health stats index                    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana_task_manager_1   iA5Q_umzQ1ySMSyiLOCI7w   1   0          2            0     57.1kb         57.1kb
green  open   .apm-agent-configuration DE8HMOigSEaiTHmdqtxERg   1   0          0            0       283b           283b
green  open   .kibana_1                T8O3ZQROT_C2hcdJtTOj_Q   1   0         10            0     36.2kb         36.2kb

创建索引

PUT /test_index?pretty

其中test_index是我们创建的索引名称,pretty参数表示显示风格,可以忽略。响应如下:

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "test_index"
}

删除索引

DELETE /test_index?pretty

响应如下:

{
  "acknowledged" : true
}

四、总结

本章,我们搭建了一个Elasticsearch+Kibana的开发环境,作为后续学习的基础。下一章节,我将引入一个示例,对Elasticsearch的基本功能进行实战讲解,便于大家快速上手Elasticsearch。

正文到此结束
本文目录