• Python项目——项目优化(Elasticsearch)(一)


    Python项目中、数据库中,怎么解决数据搜索的问题?

    数据库中有大量的文字内容,千万不要使用like + %关键词% 搜索!!!

    Elasticsearch是一个基于Lucene的分布式搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。 Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

    在这里插入图片描述

    1、集群架构: centos7

    主机名 IP地址 角色
    node1 192.168.17.6 主节点
    node2 192.168.17.7 从节点

    2、修改linux的系统配置

    修改操作系统级别对每个用户创建的进程数的限制,还要修改:每个进程可以打开的文件数的限制

    # /etc/security/limits.conf 
    * soft nofile 65536 
    * hard nofile 65536 
    * soft nproc 4096 
    * hard nproc 4096
    
    • 1
    • 2
    • 3
    • 4
    • 5

    修改 :限制一个进程可以拥有的VMA(虚拟内存区域)的数量

    # /etc/sysctl.conf
    
    vm.max_map_count=262144 
    
    # 查看 
    sysctl -p
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、下载和解压

    下载地址: https://www.elastic.co/cn/downloads/elasticsearch
    https://www.elastic.co/cn/downloads/kibana

    tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz

    4、创建用户

    🔥因为elasticsearch不能使用root用户启动,创建用户,将elasticsearch目录权限转移给新建用户。每台机器都要创建用户

    useradd kb
    chown -R kobe:kb elasticsearch-7.10.2

    🔥🔥🔥5、配置elasticsearch.yml

    🔥注意

    集群名字必须相同
    节点名字不能相同

    集群名字
    cluster.name: mykb-es 
    
    节点名字
    node.name: node1 
    
    数据存放目录
    path.data: /home/elasticsearch-7.10.2/data 
    
    存放日志
    path.logs: /home/elasticsearch-7.10.2/logs 
    
    bootstrap.memory_lock: true 
    
    绑定到本机的所有ip地址上
    network.host: 0.0.0.0 
    
    端口
    http.port: 9200
    
    指定集群都有那些节点
    discovery.seed_hosts: ["192.168.17.6", "192.168.17.7"] 
    
    master指定在那些机器上
    cluster.initial_master_nodes: ["node1", "node2"] 
    
    
    gateway.recover_after_nodes: 2
    
    • 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

    注意三台服务器上的node.name不能一样。

    使用elasticsearch自带的JDK服务

    系统上安装的JDK与elasticsearch-7.10.2版本不匹配,需要使用elasticsearch-7.10.2自带的JDK服务,修改elasticsearch-7.10.2脚本即可。

    vi /home/elasticsearch-7.10.2/bin/elasticsearch

    export JAVA_HOME=/home/elasticsearch-7.10.0/jdk
    export PATH=$PATH:$JAVA_HOME/bin

    6、拷贝整个ES目录到另外两台机器

    scp -r /home/elasticsearch-7.10.2 root@node2:`pwd`

    7、启动集群

    注:若生产环境没有关闭防火墙,则需要放行9200和9300端口,9200为对外访问端口,9300为集群内部通信端口。

    🔥bin/elasticsearch -d 在后台启动

    在这里插入图片描述

    🔥🔥🔥8、配置Kibana

    下载并解压安装包

    tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz
    mv kibana-7.10.2-linux-x86_64 /home/kibana-7.10.2

    配置以下内容

    cd /home/kibana-7.10.2/config
    
    vim kibana.yml
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    在这里插入图片描述
    🔥kibana不能作为root用户运行

    授权: chown -R kb:kb kibana-7.10.2/

    在这里插入图片描述
    🔥启动
    bin/kibana/

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    批量、在线学习, 参数、非参数学习
    Unity扩展UGUI组件多态按钮MultimodeButton
    STM32创建工程步骤
    复习四:栈
    设计模式之解析器(Interpreter)的C++实现
    电商API知识问答
    unordered_set && unordered_map 的封装
    微信小程序开发者账号注册
    @Configuration注解的知识点
    【Leetcode每日一题 2530】「贪心|模拟|优先队列」执行K次操作后的最大分数
  • 原文地址:https://blog.csdn.net/YZL40514131/article/details/125573597