Elasticsearch 搭建介绍 应用场景 安装Es可视化插件

Elasticsearch 搜索引擎

Es 分布式 高性能 高可用 可伸缩的搜索和分析系统

一、大白话介绍Elasticsearch

1.1什么是搜索?

百度: 我们想找一个信息我们就去百度搜索一下,比如说找到我们喜欢的电影 书籍 新闻

百度 != 搜索

垂直搜索

互联网的搜索 电商网站 招聘网站 新闻网站 各种app

IT软件 OA软件 会议管理 日程管理 员工管理 项目管理 搜索 “张三 张三儿 张小三”

只要我们输入一些关键字 相关的信息

1.2如果用数据库做搜索会怎么样?

​ 1)如果我们用数据库实现搜索 不靠谱, 通常来说就是性能太差了。

​ 2) 还不能给我们把搜索词拆开。 尽可能去搜索更多的符合我们期望的结果。

​ 用了es: 复仇者联盟 拆 复仇 联盟 复仇者

​ 中华人民共和国 中华 人民 共和国 中国

3.什么是全文检索, 倒排索引和Lucene?

lucene 就是一个jar包。里面封装号了各种建立倒排索引的相关代码。 各种搜索的代码和各种算法。

查询时候就是就快了 但是保存的就消耗了时间

二、Elastcsearch 功能 适用场景和特点介绍

2.1 Elastcsearch 的功能干什么的

​ 2.1.1 分布式 搜索引擎 和 数据 分析引擎

​ 搜索: 百度 网站的站内搜索 。 it系统 检索

​ 数据分析: 电商网站 最近7天时间牙膏这种商品销量排名前10商家

​ 分布式: 搜索 数据分析

​ 2.1.2 全文检索 结构化检索 数据分析

​ 全文检索:select * from goods where 商品名字 like “%牙膏”

​ 结构化检索: 我们想搜索商品的分类 都有哪些 select * from 商品 where type = “日化用户” 部分匹配 搜索纠错 搜索推荐

​ 数据分析: 我们想知道最近7天内 牙膏 买的最好的10家商家。

​ 2.1.3 对海量的数据进实时处理

​ 分布式: es 自动将海量的数据分散到多台服务器上去搜索和检索

​ 近实时 检索一个数据要花费一小时, 在秒级对数据进行搜索和分析

2.2 Elastcsearch 的使用场景能在什么地方发挥作用

​ 2.2.1 百度百科

​ 2.2.2 类似搜狐 新闻 用户行为日志 (点击 浏览 收藏 评论) 社交网络

​ 2.2.3 IT程序报错信息 论坛 csdn 全文检索

​ 2.2.4 电商网站 检索商品

​ 2.2.4 日志数据分析 logstacsh 日志收集 es 进行复杂数据分析 kibana 可视化的展示

​ 2.2.5 商品价格监控网站

​ 2.2.6 BI系统

2.3 Elastcsearch 特点

​ 2.3.1 可以做给一个大型的分布式集群(数百台服务器) 技术,可以处理 PB级别数据, 我们可以用在单机服务小公司

​ 2.3.2 es 不是新技术 主要将 全文检索 数据分析 以及分布式 技术合并在了一起,才形成独一无二es lucene(全文检索)

​ 2.3.3 对我们而言 。 是不是开箱即用。 非常简单 中小型应用 。 直接3分钟 部署一个es

​ 2.3.4 数据库的功能很多领域是不够用。 特性功能 全文检索 同义词处理 相关度排名 复杂数据分析。 海量数据的近实时处理。

三、Elasticsearch 核心概念 NRT 索引 副本 分片

3.1 lucene和 Elasticsearch 前世今生

Lucene 最先进 , 功能最强大的搜索库 , 直接基于lucene开发 , 非常复杂 api 实现一些简单的功能。 都需要编写大量的代码 。

Elasticsearch 基于lucene , 隐藏复杂性,提供简单易用的restful api接口 , java api 接口 还有其他语言api 接口。

(1) 分布式的文档存储引擎

(2)分布式的搜索引擎和分析引擎

(3)分布式 支持PB级别

开箱即用,最优秀的默认参数 ,不需要额外配置。完全开源

3.2 Elasticsearch 的核心概念

​ 3.2.1 Near Realtime: 近实时 , 两个意思 从写入数据到数据搜索有一个小延迟 大概1秒 , 基于es执行搜索 和分析可以达到秒级

​ 3.2.2 cluster : 集群 包含多个节点, 每个节点属于集群是通过一个配置来决定。

​ 3.2.3 Node: 节点集群中的一个节点, 节点有一个名字 名字随机分配的。 节点名字很重要, 默认节点会去加入一个es集群。

​ 3.2.4 Document & field : 文档 es 中最小的单元。 一个document 一个客户数据 商品分类 订单数据 并且 json 的形式保存。 每个index 的tpye中。 可以存储多个document . 一个doucument 可以由好多个 field

{

“product_id”:“1”,

“product_name”:“牙膏”

}

3.2.5 Index: 索引 包含一堆由相似结构的文档数据。 比如说可以由一个客户索引。 商品分类索引 订单索引。

3.2.6 type: 类型 每个索引里可以由一个或者多个type,type 是index 的一个逻辑分类, 一个type下document 下多个field。

比如说一个博客系统 有一个索引 定义用户数据tpye 博客数据的tpye 评论数据type。

3.2.7 shard : 单台机器 无法存储大量的数据 , es 可以将一个索引中的数据切分为多个shard 。 分布在多个服务器上进行存储。

我们如果有了shard横向拓展,存储更加多的数据。 提高吞吐量和性能。 每个shard 都是一个lucene index。

3.2.8 replica : 副本 任何一个服务器随时可能故障或者宕机。 此时的shard 可能丢失。 因此可以为每个shard创建多个副本。 replica 可以在shard故障提高备用服务。 保证我们的数据不丢失。多个副本可以提升系统的吞吐量。 每个索引10shard

3.3 Elasticsearch 核心概念 vs 数据库核心概念
Elasticsearch数据库
Document
Type
Index

四、 Elasticsearch 搭建

4.1 上传Elasticsearch 的jar 至opt下

4.2 解压 elasticsearch-5.4.3.tar.gz

tar -zxvf  elasticsearch-5.4.3.tar.gz -C /usr/local

4.3 es 启动 时需要非root用户 创建wcc用户

useradd wcc

4.4 为用户创建一个密码

passwd wcc

4.5 将wcc 赋予 root权限

vim /etc/sudoers

root   ALL(ALL)   ALL
WCC     ALL(ALL)   ALL

4.6 修改elasticsearch-5.4.3 所属者和所属组

chown -R wcc:wcc elasticsearch-5.4.3/

4.7 切换用户

su   wcc

4.8 启动elasticsearch

./elasticsearch

4.9 第一个报错

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解决修改文件数

vim vim /etc/security/limits.conf


* soft nofile 65536
* hard nofile 65536

4.10 查看可打开的文件数量

ulimit -Hn

4.11 第二个报错

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决 来设置最大的虚拟内存大小

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

4.12 可查虚拟内存的大小

sysctl -p

五、安装Es可视化插件

5.1 安装nodel

1) 在node官网下载安装包
2) 上传至服务器
3) 解压  tar -zxvf node
4) 配置环境变量   vim /etc/profile
    
export JAVA_HOME=/usr/local/jdk1.8.0_201
export NODE_HOME=/usr/local/node-v14.8.0-linux-x64
export PATH=$PATH:$JAVA_HOME/bin:$NODE_HOME/bin

    

5.2 安装git

yum install -y git
  • git clone git://github.com/mobz/elasticsearch-head.git

  • cd elasticsearch-head

  • npm install

  • npm run start

  • open http://localhost:9100/

问题

如果es-head 连接 es 连接不到 没有权限

vim /usr/local/elasticsearch-5.4.3/config/elasticsearch.yml


http.cors.enabled: true
http.cors.allow-origin: "*"

如果速度慢 请安装 cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

集群监控值得几种状态:

绿色 : 最健康得状态 , 代表了所有分片包括备份都可用

黄色 : 基本分片可用 但是备份不可用 或者没有备份

红色: 部分得分片可用, 表明有一部分孙环。 此时得查询部分数据可以查到 。 遇到这个情况得时候就要赶紧修了。

灰色: 连接不到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值