zoukankan      html  css  js  c++  java
  • ELK之ES基础&安装

    1、ElasticSearch

    ES是一个基于Lucene实现的开源、分布式、Restful的全文本搜索引擎;
    此外,它还是一个分布式实时文档存储,其中每个文档的每个field均是被索引的数据,且可被搜索;
    也是一个带实时分析功能的分布式搜索引擎,能够扩展至数以百计的节点实时处理PB级的效据。


    2、基本组件

    索引(index):文档容器,换句话说,素引是具有类似属性的文档的集合。类似于表。素引名必须使用小写字母;
    
    类型(type):类型是索引内部的逻辑分区,其意义完全取决于用户需求。一个索引内部可定义一个或多个类型。一般来说,类型就是拥有相同的域的文档的预定义。
    
    文档(document):文档是Lucene素引和搜索的原子单位,它包含了一个或多个域。是域的容器:基于JSON格式表示。
        每个域的组成部分:一个名字,一个或多个值:拥有多个值的域,通常称为多值域;
    
    映射(mapping):原始内容存储为文档之前需要事先进行分析,例如切词、过滤掉某些词等:映射用于定义此分析机制该如何实现;
    除此之外,ES还为映射提供了诸如将域中的内容排序等功能。


    3、ES的集群组件

    Cluster:ES的集群标识为集群名称:默认为“elasticsearch”。节点就是靠此名字来决定加入到哪个集群中。一个节点只能属于一个集群。
    
    Node:运行了单个ES实例的主机即为节点。用于存储数据、参与集群索引及搜索操作。节点的标识靠节点名。
    
    Shard:将索引切割成为的物理存储组件:但每一个shard都是一个独立且完整的索引;创建索引时,ES默认将其分割为5个shard,用户也可以按需自定义,创建完成之后不可修改。
        shard有两种类型:primary shard和replica。Replica用于数据冗余及查询时的负载均衡。每个主shard的副本数量可自定义,且可动态修改。


    4、ES Cluster工作过程

    启动时,通过多播(默认)或单播方式在9300/tcp查找同一集群中的其它节点,并与之建立通信。
    
    集群中的所有节点会选举出一个主节点负责管理整个集群状态,以及在集群范围内决定各shards的分布方式。站在用户角度而言,每个均可接收并响应用户的各类请求。
    
    集群有状态:green,red,yellow


    5、安装ES

    https://www.elastic.co/cn/elasticsearch


    (1)下载

    这里下载了ES1.7版本;elasticsearch-1.7.2.noarch.rpm

    https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm


    这里使用环境为三台centos7,配置了ssh互信:

    192.168.3.111 node1
    192.168.3.112 node2
    192.168.3.113 node3


    (2)安装jdk1.8

    #三台主机都要安装
    

    yum -y install java-1.8.0-openjdk.x86_64
    yum -y install java-1.8.0-openjdk-devel.x86_64
    yum -y install java-1.8.0-openjdk-headless.x86_64


    [root@node1 ~]# vim /etc/profile.d/java.sh

    export JAVA_HOME=/usr


    [root@node1 ~]# scp /etc/profile.d/java.sh node2:/etc/profile.d/

    [root@node1 ~]# scp /etc/profile.d/java.sh node3:/etc/profile.d/


    #最后都执行source

    source /etc/profile.d/java.sh


    (3)安装es

    node1节点:

    # node1 上传下载好的rpm包,可以scp到node2 node3
    [root@node1 ~]# yum -y install elasticsearch-1.7.2.noarch.rpm
    
    #修改配置文件
    [root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml 
    cluster.name: myes
    node.name: "node1"
    http.port: 9200
    
    #启动
    systemctl daemon-reload
    systemctl enable elasticsearch.service
    systemctl start elasticsearch.service


    node2、node3

    node2与node3要执行和node1一样的步骤,不过要把配置文件中的node.name字段改为自己的主机名(node2、node3);
    
    然后分别启动即可;
    
    ss -ntl


    (4)

    ES端口:

    参与集群的事务:
        9300/tcp
        配置字段:transport.tcp.port
    
    接收请求:
        9200/tcp
        配置字段:http.port


    (5)Restful API:

    四类API:
     (1)检查集群、节点索引等健康与否,以及获取其相应状态:
     (2)管理集群、节点、索引及元数据:
     (3)执行CRUD操作:
     (4)执行高级操作,例如paging,filtering等:
    
    ES访问接口:9200/tcp
    
    #用curl命令访问API
    curl -X<VERB> '<PROTOCOL>://HOST:PORT/<PATH>?<QUERY_STRING>' -d '<BODY>'
        VERB: GET, PUT, DELETE...
        PROTOCOL: http, https
        QUERY_STRING: 查询参数,例如?pretty 表示用易读的json格式输出
        BODY:请求的主体


    查看某节点上的ES是否工作正常:

    image


    ES的cat接口命令:

    image


    查看集群状态:

    image

    * :表示master节点

    m:表示可以成为master节点


    还可以查看帮助:

    [root@node1 ~]# curl -X GET 'http://node1:9200/_cat/node?help'


    查看master:

    image

  • 相关阅读:
    SHA1加密算法 java
    CMD命令名详细大全
    springMVC get请求及其请求地址写法
    webService 接口调用配置
    使用jdk操作 wsdl2java (wedservice)
    编码问题(utf-8,gbk,utf-16be)
    9 个让 JavaScript 调试更简单的 Console 命令
    让姑姑不再划拳 码农也要有原则 : SOLID via C#
    工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
    2000条你应知的WPF小姿势 基础篇<78-81 Dialog/Location/WPF设备无关性>
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/12731656.html
Copyright © 2011-2022 走看看