zoukankan      html  css  js  c++  java
  • Elaticsearch7.7.0的安装(ELK)

    Elaticsearch7.7.0

    Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。

      基本概念有:Cluster 集群、Node节点、Index索引、Document文档、Shards & Replicas分片与副本等

    elasticsearch的优势:

    • 分布式:横向扩展非常灵活
    • 全文检索:基于lucene的强大的全文检索能力;
    • 近实时搜索和分析:数据进入ES,可达到近实时搜索,还可进行聚合分析
    • 高可用:容错机制,自动发现新的或失败的节点,重组和重新平衡数据
    • 模式自由:ES的动态mapping机制可以自动检测数据的结构和类型,创建索引并使数据可搜索。
    • RESTful API:JSON + HTTP

    1-安装Elaticsearch

    1.1-下载

    Elaticsearch7.7.0下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-linux-x86_64.tar.gz
    Elatic下工具和版本下载中心: https://elasticsearch.cn/download/

    1.2-解压

    解压elasticsearch-7.7.0-linux-x86_64.tar.gz得到elasticsearch-7.7.0文件夹

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

    elasticsearch-7.7.0文件夹下内容:

    • bin/ 存放一些脚本文件,比如启动文件、安装插件的脚本等
    • config/ 配置文件目录,重要的配置文件我们接下来总结一下
    • data/ 数据文件
    • jdk/ java运行环境
    • lib/ java类库
    • logs/ 日志
    • modules/
    • plugins/ 包含所有安装的插件

    1.3-为elasticsearch新增用户

    ES在启动的时候是不允许使用root账户的,所以我们要新建一个elasticsearch用户

    [root@zxone elk]# useradd esuser           ##新增esuser用户
    [root@zxone elasticsearch-7.7.0]# chown  esuser:esuser -R /home/elk/elasticsearch-7.7.0  ##授权esuser用户权限
    [root@zxone elasticsearch-7.7.0]# su - esuser    ##切换到esuer用户
    

    1.4-系统配置

    启动ES之前需要修改LINUX的系统配置

    1.4.1-关闭swapping

    临时关闭方案:

    sudo swapoff -a
    

    长久关闭方案:

    vim /etc/fstab #注释掉所有的swap相关的行,永久禁用
    
    1.4.2-ulimit调整和线程的数量
    vim /etc/security/limits.conf  
    

    在文件的最后添加

    esuser - nofile 65535

    esuser - nproc 4096

    然后保存退出。

    1.4.3-调整mmapfs的数值
    vim /etc/sysctl.conf 
    vm.max_map_count=262144 #永久修改
    sysctl -p  #执行该命令新增的参数才会生效
    

    image-20200820180234564

    1.4.4-配置集群参数

    单机也可以算一个集群,不过只有一个机器而已。放开注释即可:

    cluster.name: my-application
    node.name: node-1
    node.attr.rack: r1
    cluster.initial_master_nodes: ["node-1"]      #有时候报如下错误时,配置此参数
    
    ERROR: [1] bootstrap checks failed [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
    

    1.5-启动ES

    [esuser@zxone elasticsearch-7.7.0]$ ./bin/elasticsearch
    

    启动ES出现错误:

    image-20200820152645393

    (1)处理JDK版本问题:

    因为elasticsearch-7.7.0要求JDK版本是11,现在LINUX安装的是JDK版本是1.8,elasticsearch是自带JDK的。

    将elasticsearch-env中的下面内容修改一下,是ES使用自带的JDK

    # now set the path to java
    if [ ! -z "$JAVA_HOME" ]; then
      JAVA="$JAVA_HOME/bin/java"
      JAVA_TYPE="JAVA_HOME"
    else
      if [ "$(uname -s)" = "Darwin" ]; then
        # macOS has a different structure
        JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
      else
        JAVA="$ES_HOME/jdk/bin/java"
      fi
      JAVA_TYPE="bundled jdk"
    fi
    

    修改成:

    # now set the path to java
    if [ ! -z "$JAVA_HOME" ]; then
      JAVA="$ES_HOME/jdk/bin/java"
      JAVA_TYPE="bundled jdk"
    else
      if [ "$(uname -s)" = "Darwin" ]; then
        # macOS has a different structure
        JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
      else
        JAVA="$ES_HOME/jdk/bin/java"
      fi
      JAVA_TYPE="bundled jdk"
    fi
    

    然后再启动ES,JDK环境问题处理完成。

    image-20200820154016671

    (2)内存太小问题处理error='Not enough space'

    该问题是因为ES默认的需要内存大小超过当前运行ES系统的内存大小,需要修改ES的默认内存大小即可。

    error:
    OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' (errno=12)
    	at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:126)
    	at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)
    	at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
    	at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:139)
    	at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)
    
    

    修改elasticsearch-7.7.0/config/jvm.options 中的Xms和Xmx参数(根据自己电脑配置修改)

    -Xms128m
    -Xmx128m
    

    此时再启动ES,则出现如下日志,则说明成功启动ES

    image-20200820170551700

    换一个窗口进行验证:curl 127.0.0.1:9200 出现以下信息ES成功启动。

    image-20200820170640813

    在浏览器中输入: IP:9200 无法获取到信息

    • 原因一:未开通9200端口

    • 原因二:在LINUX安装的ES需要修改elasticsearch-7.7.0/config/jvm.options/elasticsearch.yml中的network.host=0.0.0.0 ,不然只能本机ES,其他电脑无法连接ES。

    network.host= 0.0.0.0 
    

    修改完成之后重启ES,浏览器输入:IP:9200 出现如下ES的JSON信息。

    {
        "name": "node-1",
        "cluster_name": "my-application",
        "cluster_uuid": "tt6QC-ZrQAKRvblTZinmpg",
        "version": {
            "number": "7.7.0",
            "build_flavor": "default",
            "build_type": "tar",
            "build_hash": "81a1e9eda8e6183f5237786246f6dced26a10eaf",
            "build_date": "2020-05-12T02:01:37.602180Z",
            "build_snapshot": false,
            "lucene_version": "8.5.1",
            "minimum_wire_compatibility_version": "6.8.0",
            "minimum_index_compatibility_version": "6.0.0-beta1"
        },
        "tagline": "You Know, for Search"
    }
    
  • 相关阅读:
    导入和导出任务列表
    如何读取嵌入的资源
    如何更改水晶报表导出文件的名称
    linux下的精确wait
    cppunit helloworld详尽篇
    谈谈技术原则,技术学习方法,代码阅读及其它
    [Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)
    谈谈技术原则,技术学习方法,代码阅读及其它(正文)
    网络数据库挖掘程序的设计
    [转载]Linux中文件查找技术大全
  • 原文地址:https://www.cnblogs.com/zxone/p/13541546.html
Copyright © 2011-2022 走看看