代码编织梦想

预备知识

1、检索

以检索海南椰子为例:
层级查找方式:食品=>水果=>椰子=>海南椰子
关键词方式:输入关键词海南椰子

2、如果用MySQL来做关键词检索

SELECT * FROM goods WHERE name LIKE '%香蕉%';

即使对name创建索引,该查询依然是全表扫描(可以在开头加EXPLAIN来查看)
也就是说,索引失效了;关系型数据库不擅长干这事

3、倒排索引

https://blog.csdn.net/Yellow_python/article/details/88558424

ELK简介

  • ELK=ElasticSearch+Logstash+Kibana
    Elasticsearch:一个分布式、RESTful 风格的搜索和数据分析引擎
    Logstash:日志采集工具
    Kibana:为Logstash和ElasticSearch提供Web界面

ElasticSearch集群部署

01、集群规划+集群网络配置

环境版本
CentOS7.5
Java1.8
ElasticSearch6.6
Kibana6.6
节点hadoop100hadoop101hadoop102
master*--

https://yellow520.blog.csdn.net/article/details/113073636

02、CentOS7创建新用户+免密登录(可选)

用户为root才需要执行此步,下面创建名为yellow的用户:
https://yellow520.blog.csdn.net/article/details/115495027

集群之间各用户免密登录:
https://yellow520.blog.csdn.net/article/details/110143502

03、安装JDK

https://yellow520.blog.csdn.net/article/details/110425351

04、环境变量(可选)

https://yellow520.blog.csdn.net/article/details/112692486

05、ES的下载、上传、解压、修改户主

ES下载地址:
https://download.csdn.net/download/Yellow_python/21495315

tar -zxvf elasticsearch-6.6.0.tar.gz -C /opt/
cd /opt
mv elasticsearch-6.6.0 elasticsearch
chown -R yellow:yellow $ES_HOME
ls -l

06、创建数据存放目录

mkdir $ES_HOME/data

07、配置yml

vim $ES_HOME/config/elasticsearch.yml
#-----------------------Cluster-----------------------
cluster.name: my-application
#-----------------------Node-----------------------
node.name: node-100
#-----------------------Paths-----------------------
path.data: /opt/elasticsearch/data
#-----------------------Memory-----------------------
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#-----------------------Network-----------------------
network.host: hadoop100
#-----------------------Discovery-----------------------
discovery.zen.ping.unicast.hosts: ["hadoop100"]
参数说明备注
cluster.name集群名称同一集群的各节点的集群名称要相同
node.name节点名称同一集群的各节点的节点名称要不同
path.data数据存放目录
bootstrap.memory_lockMake sure that the heap size is set to about half the memory available on the system and that the owner of the process is allowed to use this limit.Elasticsearch performs poorly when the system is swapping the memory.
network.host绑定主机名
discovery.zen.ping.unicast.hosts节点扩展当新节点启动时,会通过该主机列表来加入集群
discovery.zen.ping.unicast.hosts说明
["hadoop100","hadoop101","hadoop102"]新节点hadoop103启动后,会ping该主机列表来发现并加入集群
["hadoop100"]集群启动时,必须先启动hadoop100

08、配置JVM选项(可选)

虚拟机内存不够才需要改

vim $ES_HOME/config/jvm.options
-Xms256m
-Xmx256m

09、修改Linux配置

在每个节点,使用root用户编辑

sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

在每个节点,使用root用户编辑

sudo vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p

10、重启Linux

每个节点进行重启

reboot

11、分发ES

rsync.py分发

rsync.py $ES_HOME

分发后,分别修改每个节点的elasticsearch.ymlnode.namenetwork.host

12、启动ES

每个节点都执行下面命令

$ES_HOME/bin/elasticsearch

13、查看ES

浏览器打开hadoop100:9200或在Linux输入命令

curl hadoop100:9200

查看集群所有节点详细信息

curl hadoop100:9200/_cat/nodes?v

Kibana安装

1、解压

放到ES里(放别的地方也可)

tar -zxvf kibana-6.6.0-linux-x86_64.tar.gz -C $ES_HOME/
cd $ES_HOME
mv kibana-6.6.0-linux-x86_64 kibana
ls -l

2、修改配置

vim $ES_HOME/kibana/config/kibana.yml
修改参数参数值备注
server.hosthadoop100指定Kibana服务器绑定的地址,可以是IP地址或主机名
elasticsearch.hosts["http://hadoop100:9200"]指定Kibana查询ES时的URL列表

3、启动Kibana

$ES_HOME/kibana/bin/kibana

查看浏览器hadoop100:5601

集群启停脚本

可选,前提是配置好集群间免密登录

touch ~/bin/es.sh
chmod 777 ~/bin/es.sh
vim ~/bin/es.sh
#!/bin/bash

cmd='echo Usage: es.sh start/stop'

if(($#!=1))
then
    $cmd
    exit
fi

# ElasticSearch
case $1 in
"start") {
    cmd="nohup $ES_HOME/bin/elasticsearch > /dev/null 2>&1 &"
};;
"stop") {
    cmd="ps -ef | grep $ES_HOME | grep -v grep | awk '{print \$2}' | xargs kill"
};;
*) {
    $cmd
    exit
};;
esac

for h in hadoop100 hadoop101 hadoop102
do
    ssh $h $cmd
    sleep 9s
done

# Kibana
kibana=$ES_HOME/kibana/bin/kibana

case $1 in
"start") {
    nohup $kibana > /dev/null 2>&1 &
};;
esac

jps.py

效果

IK分词器

ES默认不支持中文分词,我们需要安装中文分词插件

1、安装unzip用户后续解压

yum install -y unzip zip

2、解压到ES的插件目录中

mkdir $ES_HOME/plugins/ik
unzip elasticsearch-analysis-ik-6.6.0.zip -d $ES_HOME/plugins/ik/

3、分发

cd $ES_HOME/plugins/
rsync.py ik

4、重启ES

5、测试

Appendix

en????cn
unicast'juːnɪkɑːstn. 单一传播
swapswɑːpv. 交换;n. 交换

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/Yellow_python/article/details/119715822

ElasticSearch7.14.0高可用集群搭建测试-爱代码爱编程

windows下复制三个节点: 注意:如果出现三个服务都正常,但是无法互相发下对方,也就是只显示一个主节点的问题解决方法为复制时也把data目录下的数据复制了一份,删除复制过来的data目录下的数据,再次启动时启动成功。 节点node-a: # 是否支持跨域 http.cors.enabled: true # *表示支持所有域名 http.cors.

★ElasticSearch07高级搜索--多字段查询--布尔查询--agg聚合查询--subagg子聚合-爱代码爱编程

一。多字段查询QueryString 流程: 会对查询条件进行分词。然后将分词后的查询条件和词条进行等值匹配默认取并集(OR)可以指定多个查询字段 1.1 restAPI 例:在title和brandName字段中只

es文档版本控制-爱代码爱编程

GET test1/_doc/1可以获取如下信息: "_index" : "test1", "_type" : "_doc", "_id" : "1", "_version" : 5, "_seq_no" : 207973

Linux之Elasticsearch和kibana用户验证-爱代码爱编程

文章目录 一、需求说明二、配置步骤1、前置条件2、修改elasticsearch配置文件3、重启es3、配置elasticsearch密码4、修改kibana配置5、重启kibana6、重新访问kibana7、登录后

Elasticsearch-爱代码爱编程

单机版安装 到官网下载安装包:安装包 1. 新建用户 因为ElasticSearch不支持Root用户直接操作,因此我们需要创建一个elsearch用户 adduser elsearch 然后在切换成els

ElasticSearch系列之基础入门篇-爱代码爱编程

ElasticSearch基础入门 建议参考官方学习文档PUT,DELETE,GET新增数据(PUT请求)查询数据(GET请求)更新数据(PUT请求)删除数据(DELETE请求) 上一篇:ElasticSe