1. > 生活百科 >

elasticsearch启动报错(elasticsearch启动报错error parsing)

本文目录一览:

Windows上Elasticsearch启动报警告解决方案

我在自己电脑Win10上装了个Elasticsearch7.8,可能因为版本过高,导致es对jdk要求也很高,而我电脑上jdk也只是1.8版本的,然后启动的时候就报下面的警告:

Warning: with JDK 8 on Windows, Elasticsearch may be unable to derive correct

  ergonomic settings due to a JDK issue (JDK-8074459). Please use a newer

  version of Java.

Warning: MaxDirectMemorySize may have been miscalculated due to JDK-8074459.

  Please use a newer version of Java or set MaxDirectMemorySize explicitly.

这虽然只是个警告,一般情况下访问es也不会有什么问题,但是我用多线程频繁访问的时候就会报“远程主机强迫关闭了一个连接”错误。解决方式就是在配置文件中让它用自己的jdk,而不是用我们配好的环境变量的jdk。在bin/elasticsearch-env.bat文件中将if "%JAVA_HOME%" == "" (和它后面的else整个内容注释掉(es的配置中在每行的前面加rem,我也很奇怪用这么奇怪的注释方式),然后将if中的内容提取出来就好了。下面是我的配置。

set SCRIPT=%0

rem determine Elasticsearch home; to do this, we strip from the path until we

rem find bin, and then strip bin (there is an assumption here that there is no

rem nested directory under bin also named bin)

for %%I in (%SCRIPT%) do set ES_HOME=%%~dpI

:es_home_loop

for %%I in ("%ES_HOME:~1,-1%") do set DIRNAME=%%~nxI

if not "%DIRNAME%" == "bin" (

  for %%I in ("%ES_HOME%..") do set ES_HOME=%%~dpfI

  goto es_home_loop

)

for %%I in ("%ES_HOME%..") do set ES_HOME=%%~dpfI

rem now set the classpath

set ES_CLASSPATH=!ES_HOME!\lib\*

set HOSTNAME=%COMPUTERNAME%

if not defined ES_PATH_CONF (

  set ES_PATH_CONF=!ES_HOME!\config

)

rem now make ES_PATH_CONF absolute

for %%I in ("%ES_PATH_CONF%..") do set ES_PATH_CONF=%%~dpfI

set ES_DISTRIBUTION_FLAVOR=default

set ES_DISTRIBUTION_TYPE=zip

set ES_BUNDLED_JDK=true

cd /d "%ES_HOME%"

rem now set the path to java, pass "nojava" arg to skip setting JAVA_HOME and JAVA

if "%1" == "nojava" (

  exit /b

)

rem compariing to empty string makes this equivalent to bash -v check on env var

rem and allows to effectively force use of the bundled jdk when launching ES

rem by setting JAVA_HOME=

rem if "%JAVA_HOME%" == "" (

rem  set JAVA="%ES_HOME%\jdk\bin\java.exe"

rem  set JAVA_HOME="%ES_HOME%\jdk"

rem  set JAVA_TYPE=bundled jdk

rem ) else (

rem  set JAVA="%JAVA_HOME%\bin\java.exe"

rem  set JAVA_TYPE=JAVA_HOME

rem )

set JAVA="%ES_HOME%\jdk\bin\java.exe"

set JAVA_HOME="%ES_HOME%\jdk"

set JAVA_TYPE=bundled jdk

if not exist !JAVA! (

  echo "could not find java in !JAVA_TYPE! at !JAVA!" 2

  exit /b 1

)

rem do not let JAVA_TOOL_OPTIONS slip in (as the JVM does by default)

if defined JAVA_TOOL_OPTIONS (

  echo warning: ignoring JAVA_TOOL_OPTIONS=%JAVA_TOOL_OPTIONS%

  set JAVA_TOOL_OPTIONS=

)

rem JAVA_OPTS is not a built-in JVM mechanism but some people think it is so we

rem warn them that we are not observing the value of %JAVA_OPTS%

if defined JAVA_OPTS (

  (echo|set /p=warning: ignoring JAVA_OPTS=%JAVA_OPTS%; )

  echo pass JVM parameters via ES_JAVA_OPTS

)

rem check the Java version

%JAVA% -cp "%ES_CLASSPATH%" "org.elasticsearch.tools.java_version_checker.JavaVersionChecker" || exit /b 1

如果是linux上也报这种警告,也在类似的配置文件中作相似的修改,我还没有部署到linux上,就暂时不此问题的解决方案,需要的朋友可以自己试试。

ElasticSearch7.9.3版本在启动报错

两个流派:

第一个方法尝试后服务起来了,但是端口都没有启用,log中也有报错。

第二个方法就都起来了:

Elasticsearch启动及问题解决

配置JDK环境变量

在文件最后添加:

写好后按esc进入底部命令模式,输入:wq保存并退出

使配置文件生效

命令:

如果提示shasum命令找不到就试试yum install perl-Digest-SHA 我运行后就好使了

中途提示 选y就好

启动命令:

访问浏览器loalhost:9200

按照上面的步骤安装、访问浏览器9200端口,很多时候是访问不了,这时候需要查看es的日志。

注:出于安全考虑,elasticsearch默认不允许以root账号运行。故需要创建一个用户

解决办法:

创建用户,切换到创建的用户,再运行。

注:系统没有创建过普通用户,需要使用adduser命令先创建普通用户,再切换到普通用户,在重启es前需要使用kill把启动的进程杀掉。

这是切换自己创建的用户后运行时,因为不是root,所以文件权限不够。

解决办法:

先切换到root用户登录,然后修改配置文件:

配置文件中添加以下内容: (注意带*)

记得修改完,先切换到自己创建的用户,再运行elasticsearch

解决办法:

先切换到root用户下,然后执行修改配置文件

( 没有这个文件的话:root用户下vim会自动创建一个新的;自己创建的用户下,不额外配置的话,vim没有权限创建 )

所以说,先切换到root用户下

文件中添加以下内容:

然后执行命令:

记得修改完,先切换到自己创建的用户,再运行elasticsearch

先切换到root用户下,然后执行修改配置文件

修改文件中内容:

2019-08-22 03:16:26,465 main ERROR RollingFileManager (/home/leyou/elasticsearch/logs/elasticsearch.log) java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (权限不够) java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (权限不够)

解决办法:

切换到root用户下,再cd 到 elasticsearch安装目录下,进行用户授权

2.6.1、本地 curl localhost:9200 成功访问

其它机器通过ip无法访问

解决办法:

开放防火墙9200端口

2.6.2、bootstrap启动 报错,关键字 secComp

secComp,而elasticsearch5.2.0以上的版本默认bootstrap。system_call_filter为true进行检测,所以导致检测失败,失败后会导致es不能启动。

文件中添加以下内容

第一步:通过命令:ps -ef|grep elasticsearch

第二步:通过命令: kill -9 进程号 关闭此进程。我的进程号为2912

第三步:重新启动es。命令:./elasticsearch -d

参考文档: ;

参考文档:

kibana启动报错 Elasticsearch cluster did not respond with license information

1、现象

./bin/elasticsearch

./bin/kibana 在这一步的时候报错

状态刚开始变红那一段会提示

最终会因为请求超时(request timeout 30000)而终止

2、原因

启动的 elasticsearch 节点不是主节点,没有 license 信息

3、查找过程

首先确定 elasticsearch 和 kibana 的版本都是7.3,所以不是版本不一致的问题

执行

结果如下:

这里看到 license 是 null,最可能的原因就是要连接的这个 elasticsearch 节点不能和master节点建立连接

可是我只启动了一个 elasticsearch 节点,按道理它就是 master 节点啊

再执行

结果如下:

还可以看一下 elasticsearch.log

google 了一下,看到一个关键处

突然想到在用 kibana 之前,按照官网文档捣鼓一下 elasticsearch,开启过三个 elasticsearch 节点,可能就是那个时候造成某些节点不是主节点了,所以我把目录下 data、data2、data3、logs、log2、log3 都删除了,重新启动 elasticsearch,就会重新生成 data、logs 文件夹,license 也会重新生成,可以再次执行

会看到如下结果:

看到有 license 后,重新启动 kibana,就会看到启动成功啦

后续:

还可以尝试手动添加 license,命令如下,不过这个我没试过

参考链接: License Expired

ElasticSearch启动报错,bootstrap checks failed解决方案

修改elasticsearch.yml配置文件,允许外网访问时。

增加

启动失败,检查没有通过,报错:

"""

ERROR: [2] bootstrap checks failed

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[2]: 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

"""

修改elasticsearch.yml配置文件,在Discovery栏下加上“cluster.initial_master_nodes: ["node-1"]”,重启elasticsearch即可。如下所示:

总结一次安装elasticsearch7.0过程报错

1,could not find java in JAVA_HOME or bundled at /usr/local/java/jdk1.8.0_181/bin/java

解决:在安装jdk8后配置环境变量时JAVA_HOME:/usr/local/java/jdk1.8.0_231路径结尾未加/

2,ElasticsearchUncaughtExceptionHandler] … can not run elasticsearch as root

解决:根据报错详情日志看出是elasticsearch.yml配置文件中修改network.host:47.97.26.218时冒号后未加空格

3、BindTransportException[Failed to bind to [9300-9400]

解决:配置文件elasticsearch.yml 将 network.host: 47.97.26.218 修改为本机IP 0.0.0.0

4、unable to install syscall filter:

解决:在配置文件elasticsearch.yml最后一行添加bootstrap.system_call_filter: false

5、java.nio.file.AccessDeniedException: …/elasticsearch-7.4.0/config/jvm.options

解决:给es用户赋予elasticsearch-7.0.0下所有文件的权限 chown -R es:es  /usr/local/elasticsearch-7.0.0/

6、max number of threads [1024] for user [lishang] likely too low

解决:切换root用户,修改limits.d目录下的配置文件vim /etc/security/limits.d/90-nproc.conf

7、 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决:切到root用户执行sysctl -w vm.max_map_count=262144,在  /etc/sysctl.conf文件最后添加一行vm.max_map_count=262144

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息