ElasticSearch基本知识介绍和安装常见报错解决

ElasticSearch基本知识介绍和安装常见报错解决

  • ES简介
    • ES的几个核心概念
    • ES与关系型数据库(如Mysql)的对比
    • 什么是ELK
    • ES的特点
  • ES安装常见的错误和解决方案
    • 问题一:不可以用root用户启动
    • 问题二: JVM内存大小不够(默认大小为1g)
    • 问题三:ES用户拥有的可创建文件描述的权限太低
    • 问题四:ES用户拥有的内存权限太小
    • 配置ES外网访问:
    • ES后台启动命令
    • ES验证安装成功

ES简介

ES是一个开源的高扩展的分布式全文搜索引擎,可以近乎实时的存储,检索数据,扩展性好,数据处理量大,用于Java开发,使用Lucene作为他的核心。

这里说明一下为何说他可以近乎近乎实时的存储和检索:ElasticSearch默认每秒更新存储的数据,把他放到文件系统的缓存当中,因此你刚写入的数据,在下一秒就可以搜索了。

ES的几个核心概念

  1. Cluster
    ES是分布式的一个引擎,可以单机也可以集群,Cluster也就是集群
  2. Node
    Node也就是分布在集群上的每一台机器,所谓节点。
  3. Shard
    分片。比较重要,ES将数据分成很多个分片(为了方便存储和备份),而每一个分片又放在不同的服务器上(Node),查询的时候,ES是将查询发送给每个相关的分片,然后每个分片会去做自己的查询,最终把结果汇总在一起输出。(ES中默认设置为3,并且不可以更改)
  4. Replia
    副本。也就是一个分片的一个copy的存在。可以有多个,副本可以更改。其中一个副本作为主副本。类似于主从复制。
  5. 全文检索:
    意思是:将内容根据词的意思进行分词,然后分别创建索引,ES分词后,对每一个分词都是默认建立索引的,因此如果不需要对某一个分词创建索引,一定要定义出来
    举个例子:
    我在天安门隔壁的菜市场买了鸡蛋。分词后:
    我,天安门,隔壁,菜市场,买,鸡蛋

ES与关系型数据库(如Mysql)的对比

Mysql ElasticSearch
Database:数据库 Index:ES的索引
Table:表 Type:一个索引下面可以有多个类型(相当于表)
Row:行,一个表有多条数据组成 Document:一个文档相当于一条数据
Column:列 Field:ES字段(文档分词后,每个分词属于一个字段)
Schema:模式 Mapping:映射关系,组成一个Index
Index ES默认给每个分词都创建一个索引
SQL DSL
insert:增加数据 POST/PUT
delete:删除数据 DELETE
update:更新数据 PUT
select:查询数据 GET等

备注:

至于为什么ES中的PUT又可以增加又可以更新,原因如下:

  • ES的更新操作一定要带上ID,也就是一个唯一标识
  • 如果这个ID不存在,PUT操作会执行插入数据。
  • 如果存在,那么就会对对应的数据进行更改

Mapping的解释:Mapping定义了索引Index下的Type(表)下的字段处理规则,比如:索引如何建立,索引的类型是什么,是否保留原始索引JSON文档,是否需要分词等等。

什么是ELK

ELK是ElasticSearch+LogStash+Kibana的英文缩写

  • ES:就是一个分布式存储,全文搜索的引擎
  • LogStash:从ES当中抽取数据进行日志加工(可以理解为一个ETL)
  • Kibana:就是一个数据可视化的工具。

ES的特点

  1. 分布式实时文件存储,每个字段都可以放入索引
  2. 实时分析的分布式搜索引擎(将一个索引拆分成多个分片)
  3. 支持插件的机制(比如上面说的支持Kibana,还可以支持自定义的分词IK,还可以关联Hadoop)
  4. 拓展性强(可以搞集群,还支持各种插件)

ES安装常见的错误和解决方案

备注:ES版本在7.0以后支持的jdk版本都很高,所以我安装用例,使用的是ES6.0版本的。
ElasticSearch基本知识介绍和安装常见报错解决_第1张图片

问题一:不可以用root用户启动

ElasticSearch基本知识介绍和安装常见报错解决_第2张图片
解决方案:创建普通用户启动
(注意使用chown -R xxx:xxx ES文件夹的命令赋予权限)

问题二: JVM内存大小不够(默认大小为1g)

在这里插入图片描述
解决方案:在该目录下,编辑文件:在这里插入图片描述
修改后,:wq保存即可:
ElasticSearch基本知识介绍和安装常见报错解决_第3张图片

问题三:ES用户拥有的可创建文件描述的权限太低

在这里插入图片描述
查看权限命令:
在这里插入图片描述
解决方案:在root下,执行命令

	vi	/etc/security/limits.conf

添加以下参数:

 * soft nofile 65536
 * hard nofile 65536

ElasticSearch基本知识介绍和安装常见报错解决_第4张图片

问题四:ES用户拥有的内存权限太小

在这里插入图片描述

解决方案:

  1. 修改sysctl.conf文件
    在这里插入图片描述
  2. 添加以下内容
    在这里插入图片描述
  3. 让配置文件生效:执行命令 sysctl -p
    ElasticSearch基本知识介绍和安装常见报错解决_第5张图片

该版本的ES解决完以上四个问题后,正常下能启动成功:

配置ES外网访问:

配置文件当中打开注释:
ElasticSearch基本知识介绍和安装常见报错解决_第6张图片
network.host:你的虚机ip地址
http.port :ES的默认开放ip
然后重启ES就可以访问外网
ElasticSearch基本知识介绍和安装常见报错解决_第7张图片

ES后台启动命令

bin/elasticsearch -d -p pid

ES验证安装成功

curl http:127.0.0.1:9200/

ElasticSearch基本知识介绍和安装常见报错解决_第8张图片

你可能感兴趣的:(ElasticSearch)