• 【ElasticSearch学习笔记】一、ES下载、安装、目录结构、root用户权限问题、kibana下载安装


    一、下载

    以下载7.10.0为例:
    https://www.elastic.co/cn/downloads/elasticsearch
    选择对应的操作系统,我是为了安装在CentOS上面,所以选择的是Linux x86_64版本。
    在这里插入图片描述

    想找历史版本,点击右边的view past release:
    在这里插入图片描述
    在下拉框中选择对应的版本:
    在这里插入图片描述
    点击即可下载:
    在这里插入图片描述

    二、安装

    本次安装环境:

    CentOS Linux release 7.9.2009 (Core)
    Elasticsearch 7.10.0
    
    • 1
    • 2

    2.1 JDK的安装

    略略略,在ES 7以后得版本,其安装文件自带JDK。
    而且你在Linux上面装个Java都不会,你应该还没有学到ES。😄

    2.2 ElasticSearch的安装

    将前面下载的文件解压:

    tar -zxvf elasticsearch-7.10.0-linux-x86_64.tar.gz
    
    • 1

    看一下解压后的ES目录中有什么内容:

    [root@CentOS elasticsearch-7.10.0]# ll
    total 568
    drwxr-xr-x.  2 root root   4096 Nov 10  2020 bin
    drwxr-xr-x.  3 root root    169 Nov 16 22:57 config
    drwxr-xr-x.  9 root root    107 Nov 10  2020 jdk
    drwxr-xr-x.  3 root root   4096 Nov 10  2020 lib
    -rw-r--r--.  1 root root  13675 Nov 10  2020 LICENSE.txt
    drwxr-xr-x.  2 root root      6 Nov 10  2020 logs
    drwxr-xr-x. 53 root root   4096 Nov 10  2020 modules
    -rw-r--r--.  1 root root 544318 Nov 10  2020 NOTICE.txt
    drwxr-xr-x.  2 root root      6 Nov 10  2020 plugins
    -rw-r--r--.  1 root root   7313 Nov 10  2020 README.asciidoc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • bin: 可执行脚本文件,包括启动服务命令,插件管理,函数命令。
    • config:配置文件目录,如elasticsearch配置,角色配置,jvm配置等。
    • lib:elasricsearch所依赖的jar包库
    • data:默认的数据存放目录,包含所有节点、分片、索引、文档的所有数据。
    • logs:默认的日志存储路径。
    • modules:包含所有ES包含的模块,如Cluster、Discovery、Indices。
    • plugins:已经安装的插件的目录。
    • jdk:7.0之后才有,自带的java环境。

      可以看一下它所包含的Java版本,为JDK 15。

      [root@CentOS elasticsearch-7.10.0]# cd jdk/bin/
      [root@CentOS bin]# ./java -version
      openjdk version "15.0.1" 2020-10-20
      OpenJDK Runtime Environment AdoptOpenJDK (build 15.0.1+9)
      OpenJDK 64-Bit Server VM AdoptOpenJDK (build 15.0.1+9, mixed mode, sharing)
      
      • 1
      • 2
      • 3
      • 4
      • 5

    2.3 启动ES

    执行bin目录下面的elasticsearch命令,-d参数是为了在后台启动。

    [root@centos elasticsearch-7.10.0]# ./bin/elasticsearch -d
    
    • 1

    遇到了错误:

    [root@centos elasticsearch-7.10.0]# ./bin/elasticsearch -d
    [root@centos elasticsearch-7.10.0]# uncaught exception in thread [main]
    java.lang.RuntimeException: can not run elasticsearch as root
            at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:111)
            at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178)
            at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393)
            at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
            at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
            at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
            at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
            at org.elasticsearch.cli.Command.main(Command.java:90)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
    For complete error details, refer to the log at /root/elasticsearch-7.10.0/logs/elasticsearch.log
    2022-11-16 15:14:28,412676 UTC [4050] ERROR CLogger.cc@310 Cannot log to named pipe /tmp/elasticsearch-15103854651302852425/controller_log_4031 as it could not be opened for writing
    2022-11-16 15:14:28,414901 UTC [4050] INFO  Main.cc@103 Parent process died - ML controller exiting
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    这是因为elasticsearch为了安全,不允许使用root用户启动。
    我们可以单独创建一个用户来专门运行ES。

    或者在ES5以及以前版本,我们可以修改一下ES的配置,使得我们可以使用root用户启动。

    1. 在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下
    ./elasticsearch -Des.insecure.allow.root=true
    
    • 1
    1. 打开elasticsearch执行文件,在变量ES_JAVA_OPTS使用前为其赋值添加参数:
    ES_JAVA_OPTS="-Des.insecure.allow.root=true"
    
    • 1

    而在新的版本,我们就只能创建新的用户来执行ES解决这个问题了。
    创建用户es并且授权:

    [root@centos elasticsearch-7.10.0]# adduser es
    [root@centos elasticsearch-7.10.0]# passwd es
    Changing password for user es.
    New password: 
    BAD PASSWORD: The password is a palindrome
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@centos elasticsearch-7.10.0]# cd ..                              
    [root@centos ~]# chown -R es elasticsearch-7.10.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    切换用户:

    [root@centos ~]# sudo su - es
    Last login: Wed Nov 16 23:49:10 CST 2022 on pts/0
    
    • 1
    • 2

    再次执行es启动命令:

    [es@centos elasticsearch-7.10.0]$ ./bin/elasticsearch -d
    [es@centos elasticsearch-7.10.0]$ 
    
    • 1
    • 2

    没有什么异常的输出,我们可以看一下日志文件:

    less logs/elasticsearch.log 
    
    • 1

    我们找到了started字样,说明启动成功了。
    在这里插入图片描述

    我们可以访问一下服务器的9200端口:
    在这里插入图片描述
    得到了ES的状态,说明ES启动成功。

    2.4 多节点启动

    如果我们想启动多个节点,
    首先我们先启动第一个节点:

    ./bin/elasticsearch -E path.data=data1 -E path.logs=log1 -E node.name=node1 -E cluster.name=veeja-test -d
    ./bin/elasticsearch -E path.data=data2 -E path.logs=log2 -E node.name=node2 -E cluster.name=veeja-test -d
    
    • 1
    • 2

    然后分别访问9200和9201端口就能看到了:
    在这里插入图片描述

    三、Kibana的安装

    同样下载7.10.0版本:
    在这里插入图片描述

    kibana-7.10.0-linux-x86_64.tar.gz
    
    • 1

    解压:

    [root@centos ~]# tar -zxvf kibana-7.10.0-linux-x86_64.tar.gz 
    [root@centos ~]# ll
    total 558188
    drwxr-xr-x. 10 root root            210 Nov 20 15:01 kibana-7.10.0-linux-x86_64
    -rw-r--r--.  1 root root      252795226 Nov 20 14:59 kibana-7.10.0-linux-x86_64.tar.gz
    
    • 1
    • 2
    • 3
    • 4
    • 5

    先修改一下配置文件,以便于我们再虚拟机外部访问(本地运行可以忽略):

    [es@centos kibana-7.10.0-linux-x86_64]$ vim config/kibana.yml 
    
    • 1

    修改为虚拟机的IP:

    # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
    # The default is 'localhost', which usually means remote machines will not be able to connect.
    # To allow connections from remote users, set this parameter to a non-loopback address.
    server.host: "192.168.31.217"
    
    • 1
    • 2
    • 3
    • 4

    启动kibana的方式同es差不多:

    [es@centos kibana-7.10.0-linux-x86_64]$ ./bin/kibana
    
    • 1

    当我们看到如下字样:
    在这里插入图片描述
    就证明启动成功了,我们可以访问一下5601端口进行尝试:
    在这里插入图片描述


    End.

  • 相关阅读:
    Spring boot集成nacos图文教程
    Discourse 可以支持的存储类型
    一文教你在MindSpore中实现A2C算法训练
    仿everything的文件搜索工具测试
    linux/mac 下查看、修改文件权限的命令
    java的优缺点
    面试:recyclerview的优化
    【Leetcode刷题Python】120. 三角形最小路径和
    什么是顶级域名?如何获得顶级域名解析方案
    [架构之路-12]:目标系统 - 硬件平台 - 单核CPU的架构与基本工作原理
  • 原文地址:https://blog.csdn.net/u014565127/article/details/127895036