美文网首页
161Elasticsearch 基础入门--elasticse

161Elasticsearch 基础入门--elasticse

作者: Jachin111 | 来源:发表于2021-09-23 06:52 被阅读0次

    elasticsearch 简介

    ElasticSearch 是一个基于 Lucene 的搜索服务器。它是一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的。
    目前 Elasticsearch 与阿里云携手合作在阿里云上提供的 Elasticsearch 和 Kibana 托管云服务,包含 X-Pack 全部功能。目前应用 elasticsearch 构建搜索系统的公司有:Github 使用 Elasticsearch 搜索 TB 级别的数据、Sony(Sony 公司使用 elasticsearch 作为信息搜索引擎)国内有赶集网、京东等。
    搜索流程如图:用户打开浏览器输入关键字如“羽绒服”后浏览器将会请求我们的应用服务器,应用服务器通过调用 elasticsearch 的 api 后请求 es 的搜索服务器,搜索服务器得到结果后返回给应用服务器最终返回到浏览器。


    image.png

    elasticsearch 涉及的关键性名词

    cluster(集群)
    代表一个集群,集群中有多个节点,其中有一个为主节点,默认这个主节点是可以通过选举产生的,配置方式可指定哪些节点主节点,哪些节点数据节点,主从节点是对于集群内部来说的。es 的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看 es 集群,在逻辑上是个整体,你与任何一个节点的通信和与整个 es 集群通信是等价的。
    shards(分片)
    代表索引分片,es 可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索,可提高搜索性能,当然也不是越大越好,还是要看你要存储的数据量,如果数据量大,可把分片设置大点,数据量小,可把分片设置小点,默认是 5 个分片,分片的数量只能在索引创建前指定,并且索引创建后不能更改。
    replicas(副本)
    代表索引副本,es 可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高 es 的查询效率,es 会自动对搜索请求进行负载均衡。默认是 1 个副本。
    gateway
    代表 es 索引快照的存储方式,es 默认是先把索引存放到内存中,当内存满了时再持久化到本地硬盘,默认是 1 g,官方建议一个节点最大不超过 32G,超过 32G 性能反而会下降。gateway 对索引快照进行存储,当这个 es 集群关闭再重新启动时就会从 gateway 中读取索引备份数据。
    discovery.zen
    代表 es 的自动发现节点机制,es 是一个基于 p2p 的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。早期的版本不需要任何配置,只要在一个网段,启动后就会组成集群,非常方便,但是同时也带来了问题,某台机器的测试数据和另一台机器的数据会互相同步。
    Transport
    代表 es 内部节点或集群与客户端的交互方式,默认内部是使用 tcp 协议进行交互,同时它支持 http 协议(json 格式)、thrift、servlet、memcached、zeroMQ 等的传输协议(通过插件方式集成)java 客户端的方式是以 tcp 协议在 9300 端口上进行通信 http 客户端的方式是以 http 协议在 9200 端口上进行通信。

    搭建 elasticsearch 服务

    在实验楼环境中,打开 xfce 终端,依次执行如下命令: 1.切换到 Code 目录

    cd /home/shiyanlou/Code/
    

    下载 elasticsearch 软件包到当前目录中

    sudo wget https://labfile.oss.aliyuncs.com/courses/1014/elasticsearch-2.3.4.zip
    

    解压 elasticsearch 文件包

    unzip elasticsearch-2.3.4.zip
    
    image.png

    切换到 elasticsearch-2.3.4

    cd elasticsearch-2.3.4
    

    创建日志目录和数据目录

    mkdir logs
    mkdir data
    
    image.png

    切换到 elasticsearch-2.3.4 的 bin 目录下

    cd bin
    

    安装 service 用于启动 es

     sudo wget https://labfile.oss.aliyuncs.com/courses/1014/elasticsearch-servicewrapper-master.zip
    
    image.png

    解压 elasticsearch-servicewrapper-master.zip 文件包

    unzip elasticsearch-servicewrapper-master.zip
    
    image.png

    执行移动命令把 bin/elasticsearch-servicewrapper-master 下的 service 移动到 bin 目录下

    mv elasticsearch-servicewrapper-master/service   /home/shiyanlou/Code/elasticsearch-2.3.4/bin
    
    image.png

    修改配置
    修改配置 elasticsearch-2.3.4/bin/service/elasticsearch.conf 和 elasticsearch-2.3.4/config/elasticsearch.yml
    在 elasticsearch.conf 第 30 行左右修改配置

    wrapper.java.classpath.1=%ES_HOME%/bin/service/lib/wrapper.jar
    # 注释掉 classpath.2 这句,把以前的 classpath.3 和 4 改为 2 和 3
    # wrapper.java.classpath.2=%ES_HOME%/lib/elasticsearch*.jar
    wrapper.java.classpath.2=%ES_HOME%/lib/*.jar
    wrapper.java.classpath.3=%ES_HOME%/lib/sigar/*.jar
    
    image.png

    在第 52 行后加入

    wrapper.java.additional.10=-Des.insecure.allow.root=true
    

    启动类的修改 在 58 行左右

    # 把这句注释掉,然后在下面添加下面这两句
    # wrapper.app.parameter.1=org.elasticsearch.bootstrap.ElasticsearchF
    wrapper.app.parameter.1=org.elasticsearch.bootstrap.Elasticsearch
    wrapper.app.parameter.2=start
    
    image.png

    修改 config/elasticsearch.yml 文件
    新加入下面这两行

    network.host: 127.0.0.1
    security.manager.enabled: false
    

    执行关键的一步启动 elasticsearch
    在 bin/service/ 下执行

    ./elasticsearch start # 启动后检查日志没有任何错误
    ./elasticsearch stop
    
    image.png

    检查 elasticsearch 端口 9300 用于程序开发 9200 用于 rest 访问

    相关文章

      网友评论

          本文标题:161Elasticsearch 基础入门--elasticse

          本文链接:https://www.haomeiwen.com/subject/wewggltx.html