zoukankan      html  css  js  c++  java
  • Docker搭建ElasticSearch

    Docker这个容器技术已经非常成熟了,市面上用的公司也特别多,我呢也经常用,也被这Docker经常坑,像什么mysql镜像版本更新后远程无法连接咯,什么虚拟机或者虚拟ip使用Docker搭建Nginx外部无法访问咯,再像这个ES启动报错!!!哎,小场面,不要慌。下面开机!!!

    环境准备

    1.java环境一个
    2.Docker环境一个

    开始搭建

    1.检查java环境
    在这里插入图片描述

    java -version
    这里教大家一个快速切换java环境的命令
    update-alternatives --config java
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    输入对应的数字回车即可

    2.拉取ES镜像

    docker pull elasticsearch:7.4.2
    
    • 1

    这里最好指定一下版本,后面还要搭配Kibana一起使用

    3.创建对应目录、文件
    这一步其实可做可不做,看自己的需求,如果需要将配置、数据、插件挂载到外部,那么就要这一步
    在ES的工作目录下创建config、data、plugins,其中config目录下创建elasticsearch.yml文件
    这个文件挂载是特别特别坑,真的是神坑,这里需要注意格式
    (空格)key:(空格)value

    #设置远程访问
     http.host: 0.0.0.0
    
    • 1
    • 2

    在这里插入图片描述
    保存即可

    4.启动

    docker run --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -e "discovery.type=single-node" -v /data/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/es/data:/usr/share/elasticsearch/data -v /data/es/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.4.2
    
    • 1

    这里解释一下,-v是目录挂载 -e是ES的启动配置参数 -p是映射端口 -d后台启动
    其中-e ES_JAVA_OPTS="-Xms64m -Xmx128m"是设置占用内存大小,一般线上检索服务器-ES服务器32G,这里就小一点测试,-e "discovery.type=single-node"这个是设置单节点运行

    5.查看ES容器状态

    docker ps
    
    • 1

    在这里插入图片描述
    6.查看ES容器启动成功日志
    这一步虽说有点多余不过等下回演示保存情况
    在这里插入图片描述
    7.远程访问测试
    在这里插入图片描述
    好,那么到这里的正常操作就ok了,下面在演示异常情况

    ES启动异常

    这里的一个jdk版本警告可以忽略
    1.外部挂载目录权限
    保存日志大概长这样

    Exception in thread "main" 2018-06-03 17:36:23,881 main ERROR No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property ‘log4j2.debug‘ to show Log4j2 internal initialization logging.
    2018-06-03 17:36:24,113 main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
            at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:585)
            at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.checkMBeanTrustPermission(DefaultMBeanServerInterceptor.java:1848)
            at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:322)
            at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
            at org.apache.logging.log4j.core.jmx.Server.register(Server.java:389)
            at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:167)
            at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:140)
            at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:556)
            at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617)
            at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634)
            at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229)
            at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:242)
            at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
            at org.apache.logging.log4j.LogManager.getContext(LogManager.java:174)
            at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:618)
            at org.elasticsearch.common.logging.ESLoggerFactory.getLogger(ESLoggerFactory.java:54)
            at org.elasticsearch.common.logging.ESLoggerFactory.getLogger(ESLoggerFactory.java:62)
            at org.elasticsearch.common.logging.Loggers.getLogger(Loggers.java:101)
            at org.elasticsearch.ExceptionsHelper.<clinit>(ExceptionsHelper.java:42)
            at org.elasticsearch.ElasticsearchException.toString(ElasticsearchException.java:663)
            at java.lang.String.valueOf(String.java:2994)
            at java.io.PrintStream.println(PrintStream.java:821)
            at java.lang.Throwable$WrappedPrintStream.println(Throwable.java:748)
            at java.lang.Throwable.printStackTrace(Throwable.java:655)
            at java.lang.Throwable.printStackTrace(Throwable.java:643)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1061)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052)
            at java.lang.Thread.dispatchUncaughtException(Thread.java:1959)
    
    SettingsException[Failed to load settings from /usr/local/elasticsearch-5.6.0/config/elasticsearch.yml]; nested: AccessDeniedException[/usr/local/elasticsearch-5.6.0/config/elasticsearch.yml];
            at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:102)
            at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:72)
            at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67)
            at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
            at org.elasticsearch.cli.Command.main(Command.java:90)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)
    Caused by: java.nio.file.AccessDeniedException: /usr/local/elasticsearch-5.6.0/config/elasticsearch.yml
            at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
            at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
            at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
            at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
            at java.nio.file.Files.newByteChannel(Files.java:361)
            at java.nio.file.Files.newByteChannel(Files.java:407)
            at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
            at java.nio.file.Files.newInputStream(Files.java:152)
            at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1032)
            at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:100)
            ... 6 more
    
    • 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
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    解决方案
    将es的操作目录权限放开即可

    chown -R ela /es的目录
    
    • 1

    2.操作用户为root用户
    这是因为ES有个安全保护策略,具体原因我也懒得去查,我这里只提供解决方案!

    [2017-12-20T17:01:47,922][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
    org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.1.1.jar:6.1.1]
    Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.1.1.jar:6.1.1]
        ... 6 more
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    解决方案!
    1.使用root角色创建ela用户

    //创建角色
    adduser ela 
    //设置密码(这里长度最好大于8位)
    passwd ela
    
    • 1
    • 2
    • 3
    • 4

    2.ela角色创建好了切换到ela用户下

    sudo ela
    输入密码
    
    使用docker启动
    这时使用ela用户操作docker会报错,这是因为ela不在docker用户组里面,没有权限使用docker这些命令
    
    • 1
    • 2
    • 3
    • 4
    • 5

    报错信息

    Got permission denied while trying to connect to the Docker daemon socket at.....
    
    • 1

    3.切换root用户角色,给docker添加ela用户

    sudo groupadd docker #添加docker用户组
    
    sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
    
    newgrp docker #更新用户组
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.切换到ela用户下启动即可

    3.elasticsearch.yml配置文件格式错误

    [root@localhost config]# docker logs es
    OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
    2020-07-08 14:30:14,828 main ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations                                 . Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to config                                 ure Log4j 2
    Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] bu                                 t found [VALUE_STRING]];
            at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1097)
            at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1070)
            at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:83)
            at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:95)
            at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
            at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
            at org.elasticsearch.cli.Command.main(Command.java:90)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
    Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]]
            at org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken(XContentParserUtils.java:78)
            at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:617)
            at org.elasticsearch.common.settings.Settings.access$400(Settings.java:82)
            at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1093)
            ... 8 more
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    真确的key和value格式
    这是报错的配置
    在这里插入图片描述
    解决方案(空格)key:(空格)value
    在这里插入图片描述

     

     

    转载于:https://blog.csdn.net/CSDN877425287/article/details/107216347?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-7-107216347.nonecase&utm_term=docker%20%E5%90%AF%E5%8A%A8es%E5%90%8E%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5%E4%B8%8D%E4%B8%8A

    Docker这个容器技术已经非常成熟了,市面上用的公司也特别多,我呢也经常用,也被这Docker经常坑,像什么mysql镜像版本更新后远程无法连接咯,什么虚拟机或者虚拟ip使用Docker搭建Nginx外部无法访问咯,再像这个ES启动报错!!!哎,小场面,不要慌。下面开机!!!

    环境准备

    1.java环境一个
    2.Docker环境一个

    开始搭建

    1.检查java环境
    在这里插入图片描述

    java -version
    这里教大家一个快速切换java环境的命令
    update-alternatives --config java
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    输入对应的数字回车即可

    2.拉取ES镜像

    docker pull elasticsearch:7.4.2
    
    • 1

    这里最好指定一下版本,后面还要搭配Kibana一起使用

    3.创建对应目录、文件
    这一步其实可做可不做,看自己的需求,如果需要将配置、数据、插件挂载到外部,那么就要这一步
    在ES的工作目录下创建config、data、plugins,其中config目录下创建elasticsearch.yml文件
    这个文件挂载是特别特别坑,真的是神坑,这里需要注意格式
    (空格)key:(空格)value

    #设置远程访问
     http.host: 0.0.0.0
    
    • 1
    • 2

    在这里插入图片描述
    保存即可

    4.启动

    docker run --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -e "discovery.type=single-node" -v /data/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/es/data:/usr/share/elasticsearch/data -v /data/es/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.4.2
    
    • 1

    这里解释一下,-v是目录挂载 -e是ES的启动配置参数 -p是映射端口 -d后台启动
    其中-e ES_JAVA_OPTS="-Xms64m -Xmx128m"是设置占用内存大小,一般线上检索服务器-ES服务器32G,这里就小一点测试,-e "discovery.type=single-node"这个是设置单节点运行

    5.查看ES容器状态

    docker ps
    
    • 1

    在这里插入图片描述
    6.查看ES容器启动成功日志
    这一步虽说有点多余不过等下回演示保存情况
    在这里插入图片描述
    7.远程访问测试
    在这里插入图片描述
    好,那么到这里的正常操作就ok了,下面在演示异常情况

    ES启动异常

    这里的一个jdk版本警告可以忽略
    1.外部挂载目录权限
    保存日志大概长这样

    Exception in thread "main" 2018-06-03 17:36:23,881 main ERROR No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property ‘log4j2.debug‘ to show Log4j2 internal initialization logging.
    2018-06-03 17:36:24,113 main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
            at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:585)
            at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.checkMBeanTrustPermission(DefaultMBeanServerInterceptor.java:1848)
            at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:322)
            at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
            at org.apache.logging.log4j.core.jmx.Server.register(Server.java:389)
            at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:167)
            at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:140)
            at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:556)
            at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617)
            at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634)
            at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229)
            at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:242)
            at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
            at org.apache.logging.log4j.LogManager.getContext(LogManager.java:174)
            at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:618)
            at org.elasticsearch.common.logging.ESLoggerFactory.getLogger(ESLoggerFactory.java:54)
            at org.elasticsearch.common.logging.ESLoggerFactory.getLogger(ESLoggerFactory.java:62)
            at org.elasticsearch.common.logging.Loggers.getLogger(Loggers.java:101)
            at org.elasticsearch.ExceptionsHelper.<clinit>(ExceptionsHelper.java:42)
            at org.elasticsearch.ElasticsearchException.toString(ElasticsearchException.java:663)
            at java.lang.String.valueOf(String.java:2994)
            at java.io.PrintStream.println(PrintStream.java:821)
            at java.lang.Throwable$WrappedPrintStream.println(Throwable.java:748)
            at java.lang.Throwable.printStackTrace(Throwable.java:655)
            at java.lang.Throwable.printStackTrace(Throwable.java:643)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1061)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052)
            at java.lang.Thread.dispatchUncaughtException(Thread.java:1959)
    
    SettingsException[Failed to load settings from /usr/local/elasticsearch-5.6.0/config/elasticsearch.yml]; nested: AccessDeniedException[/usr/local/elasticsearch-5.6.0/config/elasticsearch.yml];
            at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:102)
            at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:72)
            at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67)
            at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
            at org.elasticsearch.cli.Command.main(Command.java:90)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)
    Caused by: java.nio.file.AccessDeniedException: /usr/local/elasticsearch-5.6.0/config/elasticsearch.yml
            at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
            at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
            at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
            at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
            at java.nio.file.Files.newByteChannel(Files.java:361)
            at java.nio.file.Files.newByteChannel(Files.java:407)
            at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
            at java.nio.file.Files.newInputStream(Files.java:152)
            at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1032)
            at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:100)
            ... 6 more
    
    • 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
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    解决方案
    将es的操作目录权限放开即可

    chown -R ela /es的目录
    
    • 1

    2.操作用户为root用户
    这是因为ES有个安全保护策略,具体原因我也懒得去查,我这里只提供解决方案!

    [2017-12-20T17:01:47,922][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
    org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.1.1.jar:6.1.1]
    Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) ~[elasticsearch-6.1.1.jar:6.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.1.1.jar:6.1.1]
        ... 6 more
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    解决方案!
    1.使用root角色创建ela用户

    //创建角色
    adduser ela 
    //设置密码(这里长度最好大于8位)
    passwd ela
    
    • 1
    • 2
    • 3
    • 4

    2.ela角色创建好了切换到ela用户下

    sudo ela
    输入密码
    
    使用docker启动
    这时使用ela用户操作docker会报错,这是因为ela不在docker用户组里面,没有权限使用docker这些命令
    
    • 1
    • 2
    • 3
    • 4
    • 5

    报错信息

    Got permission denied while trying to connect to the Docker daemon socket at.....
    
    • 1

    3.切换root用户角色,给docker添加ela用户

    sudo groupadd docker #添加docker用户组
    
    sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
    
    newgrp docker #更新用户组
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.切换到ela用户下启动即可

    3.elasticsearch.yml配置文件格式错误

    [root@localhost config]# docker logs es
    OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
    2020-07-08 14:30:14,828 main ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations                                 . Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to config                                 ure Log4j 2
    Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] bu                                 t found [VALUE_STRING]];
            at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1097)
            at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1070)
            at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:83)
            at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:95)
            at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
            at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
            at org.elasticsearch.cli.Command.main(Command.java:90)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
    Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]]
            at org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken(XContentParserUtils.java:78)
            at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:617)
            at org.elasticsearch.common.settings.Settings.access$400(Settings.java:82)
            at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1093)
            ... 8 more
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    真确的key和value格式
    这是报错的配置
    在这里插入图片描述
    解决方案(空格)key:(空格)value
    在这里插入图片描述

  • 相关阅读:
    JS 一键复制功能实现
    移动端点击弹窗后禁止页面滑动
    ui库地址总结
    react源码解析20.总结&第一章的面试题解答
    react源码解析19.手写迷你版react
    react源码解析18事件系统
    react源码解析17.context
    react源码解析16.concurrent模式
    react源码解析15.scheduler&Lane
    react源码解析14.手写hooks
  • 原文地址:https://www.cnblogs.com/xing-29391/p/13562229.html
Copyright © 2011-2022 走看看