ElasticSearch安装使用

基本概念

它是一种非关系型数据库,基本概念如下:

  • index: es里的index相当于一个数据库。
  • type: 相当于数据库里的一个表。
  • document: 文档,相当于表中的一条记录。
  • id: 唯一,相当于主键。
  • node:节点是es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同(下面有讲)。
  • cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。
  • shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
  • replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

ElasticSearch 安装

安装JDK7及以上版本(这里不再讲述JDK安装步骤)

windows下的安装比较简单,这里就不多做赘述了,主要描述一下Linux下的安装。

下载ElasticSearch安装包,https://www.elastic.co/downloads/

获取elasticsearch-xxx.tar.gz安装包

  • 下载到具体的目录后,解压tar zxvf elasticsearch-xxx.tar.gz
  • 进入elasticsearch/bin下运行elasticsearch脚本启动

    1
    2
    cd elasticsearch/bin
    ./elasticsearch
  • 对于高版本的ES而言,如果是用root账号启动,会报以下错误

    1
    2
    3
    4
    5
    6
    Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
    Refer to the log for complete error details.

这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,
建议创建一个单独的用户用来运行ElasticSearch

  • 当然对于低版本5.0之前的elasticsearch,如果执意要通过root来执行的话,可以这样:在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下
    1
    ./elasticsearch -Des.insecure.allow.root=true

或者用vi打开bin/elasticsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令

1
ES_JAVA_OPTS="-Des.insecure.allow.root=true"

5.0版本之前可以在指令后跟:-Des.insecure.allow.root=true或者修改elasticsearch文件,5.0之后的版本已经失效;

关于Elasticsearch常见问题解决: Elasticsearch启动常见问题

  • 这里我再演示创建用户来运行elasticsearch,创建elsearch用户组及elsearch用户
    1
    2
    groupadd elsearch
    useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch

1
2
cd /opt
chown -R elsearch:elsearch elasticsearch

切换到elsearch用户再启动

1
2
su elsearch cd elasticsearch/bin
./elasticsearch

启动后打印信息如下

1
2
3
4
5
6
7
8
9
10
11
[2015-12-30 10:15:44,876][WARN ][bootstrap                ] unable to install syscall filter: prctl(PR_GET_NO_NEW_PRIVS): Invalid argument
[2015-12-30 10:15:45,175][INFO ][node ] [Grim Hunter] version[2.1.1], pid[26383], build[40e2c53/2015-12-15T13:05:55Z]
[2015-12-30 10:15:45,176][INFO ][node ] [Grim Hunter] initializing ...
[2015-12-30 10:15:45,243][INFO ][plugins ] [Grim Hunter] loaded [], sites []
[2015-12-30 10:15:45,272][INFO ][env ] [Grim Hunter] using [1] data paths, mounts [[/ (/dev/mapper/vg_yong-lv_root)]], net usable_space [33.3gb], net total_space [49gb], spins? [no], types [ext4]
[2015-12-30 10:15:47,318][INFO ][node ] [Grim Hunter] initialized
[2015-12-30 10:15:47,318][INFO ][node ] [Grim Hunter] starting ...
[2015-12-30 10:15:47,388][INFO ][discovery ] [Grim Hunter] elasticsearch/fnXUCLOQQBiC1aR7hhB82Q
[2015-12-30 10:15:50,442][INFO ][cluster.service ] [Grim Hunter] new_master {Grim Hunter}{fnXUCLOQQBiC1aR7hhB82Q}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received)
[2015-12-30 10:15:50,491][INFO ][node ] [Grim Hunter] started
[2015-12-30 10:15:50,526][INFO ][gateway ] [Grim Hunter] recovered [0] indices into cluster_state

以上代表elasticsearch已经正常启动成功

  • ElasticSearch后端启动命令
    1
    ./elasticsearch -d

执行成功后,可以通过浏览器来验证一下。这里需要先修改一下elasticsearch.yml文件,由于默认是本地连接,所以需要添加一下

1
network.host: 0.0.0.0

这样就可以进行外部连接,http://localhost:9200 打开后:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"name": "X-Ray",
"cluster_name": "elasticsearch",
"cluster_uuid": "fhbj-alxQIiKp_OhqKrVag",
"version": {
"number": "2.4.6",
"build_hash": "5376dca9f70f3abef96a77f4bb22720ace8240fd",
"build_timestamp": "2017-07-18T12:17:44Z",
"build_snapshot": false,
"lucene_version": "5.5.4"
},
"tagline": "You Know, for Search"
}

关闭elasticsearch,直接通过kill -9 进程号即可

安装head插件

Elasticsearch Head Plugin: 对ES进行各种操作,如查询、删除、浏览索引等

安装插件的方式有多种,这里讲解的是低版本5.0之前版本,6.0以上的可以查看官方文档https://github.com/mobz/elasticsearch-head:

  • 1、版本相对较高的可以这样安装:

    1
    2
    3
    1. 进入到节点elasticsearch-node1/bin路径,并安装插件
    2. ./plugin -install mobz/elasticsearch-head
    3. 运行es,打开http://localhost:9200/_plugin/head/
  • 2、由于github下载比较慢,所以我fork到码云了

下载地址:https://gitee.com/Luke-Lu/elasticsearch-head

1
2
3
4
1.下载zip包
2.建立elasticsearch-xxx\plugins\head\_site文件 <br>
3.将解压后的elasticsearch-head-master文件夹下的文件copy到_site <br>
4.运行es,打开http://localhost:9200/_plugin/head/

elasticsearch-head插件的使用方法网上自行百度。

-------------本文结束感谢您的阅读-------------
0%