Elasticsearch基础入门

什么是 ElasticSearch

ElasticSearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

基础概念

索引:含有相同属性的文档集合

类型:索引可以定义一个或多个类型,文档必须属于一个类型

文档:可以被索引的基础数据单位

分片:每个索引都有多个分片,每个分片都是 Lucene 索引

备份:拷贝一份分片就完成分片的备份

应用场景

  • 海量数据分析引擎
  • 站内搜索引擎
  • 数据仓库

安装和配置

依赖环境

JDK 和 NodeJS

安装jdk,和node这里就不写了,源码安装即可!

下载

登陆 elasticSearch 官网下载文件。

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#增加 elk 组
groupadd elk
#增加 elk 用户并附加到 es 组
useradd elk -g elk -p elk

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
tar -zxvf elasticsearch-6.2.4.tar.gz -C /data/elk
mkdir /data/elk/dataelastic/

ulimit -n 65536

vim /etc/sysctl.conf
vm.max_map_count=262144

#给目录权限
chown -R elk:elk elasticsearch-6.2.4
#使用es用户
su elk

配置文件修改如下:
path.data: /data/elk/dataelastic/
cluster.name: gag-elk
node.name: gag-elk-node-92
network.host: 192.168.50.92
http.port: 9200
transport.tcp.port: 9300

node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.50.92","192.168.50.93","192.168.50.94"]
discovery.zen.minimum_master_nodes: 2
gateway.recover_after_nodes: 2
gateway.expected_nodes: 2
gateway.recover_after_time: 1m #检测到副本数不够的时候,1分钟之后才开始同步
xpack.security.enabled: false
thread_pool.index.size: 8
thread_pool.index.queue_size: 8000
thread_pool.bulk.size: 8
thread_pool.bulk.queue_size: 8000

另俩台机器也这么操作,就可以配置es集群

启动

1
bin/elasticsearch 或 bin/elasticsearch -d # -d 表示后台启动

下载插件

1
2
3
4
5
6
7
wget https://github.com/shenshengkun/elasticsearch-head/archive/master.zip
unzip master.zip
cd elasticsearch-head-master
npm install
npm run start

也可以用谷歌浏览器,搜索扩展程序ElasticSearch Head,就可以直接使用head插件

Elasticsearch常用命令

1
2
3
curl -XDELETE 'http://host.IP.address:9200/logstash-*'  删除索引(后面为索引名称)
curl -XGET 'host.IP.address:9200/_cat/health?v&pretty' 查看集群状态
curl -XGET 'host.IP.address:9200/_cat/indices?v&pretty' 查看索引
Donate