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

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)的对比

MysqlElasticSearch
Database:数据库Index:ES的索引
Table:表Type:一个索引下面可以有多个类型(相当于表)
Row:行,一个表有多条数据组成Document:一个文档相当于一条数据
Column:列Field:ES字段(文档分词后,每个分词属于一个字段)
Schema:模式Mapping:映射关系,组成一个Index
IndexES默认给每个分词都创建一个索引
SQLDSL
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版本的。
在这里插入图片描述

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

在这里插入图片描述
解决方案:创建普通用户启动
(注意使用chown -R xxx:xxx ES文件夹的命令赋予权限)

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

在这里插入图片描述
解决方案:在该目录下,编辑文件:在这里插入图片描述
修改后,:wq保存即可:
在这里插入图片描述

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

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

	vi	/etc/security/limits.conf

添加以下参数:

 * soft nofile 65536
 * hard nofile 65536

在这里插入图片描述

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

在这里插入图片描述

解决方案:

  1. 修改sysctl.conf文件
    在这里插入图片描述
  2. 添加以下内容
    在这里插入图片描述
  3. 让配置文件生效:执行命令 sysctl -p
    在这里插入图片描述

该版本的ES解决完以上四个问题后,正常下能启动成功:
在这里插入图片描述

配置ES外网访问:

配置文件当中打开注释:
在这里插入图片描述
network.host:你的虚机ip地址
http.port :ES的默认开放ip
然后重启ES就可以访问外网
在这里插入图片描述

ES后台启动命令

bin/elasticsearch -d -p pid

ES验证安装成功

curl http:127.0.0.1:9200/

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zong_0915

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值