美文网首页
elasticsearch安装遇到错误“此时不应有 \elast

elasticsearch安装遇到错误“此时不应有 \elast

作者: 昊天怪鱼 | 来源:发表于2020-03-01 18:49 被阅读0次

    最近学习ELK,需要进行环境搭建工作,将安装过程中遇到的问题记录下来。

    问题描述

    从网上下载好elasticsearch的zip文件后安装到G:\Program Files (x86)目录下面(这里是个大坑)。
    解压完毕,直接双击击bin目录下面的elasticsearch.bat,结果启动窗口一闪而过,想象中的启动窗口打印日志的情况没有出现,于是只得通过打开PowerShell窗口进入elasticseach/bin目录下面执行elasticsearch.bat,很明显启动报错,下面是报错信息

    微信截图_20200301180426.png

    问题思路

    遇到错误不要,复制粘贴求搜索。同样的问题,网上肯定有人遇到过。但是很不幸,花费了好大一会儿功夫,没有同样的问题解决方案。网上遇到问题大都是关于jdk环境的,很明显我这里的问题不是同一类。

    问题解决

    不是java环境变量的问题,那就是elasticsearch环境的问题。这里根据之前的经验,无非是路径中带中文或者特殊符号导致路径问题,于是新加文件夹G:\devlop,将elasticsearch的文件安装到G:\devlop下面,ok,正常启动。

    问题初步分析

    既然是路径的问题那就好办了,排除法走起。
    首先是空格,新建一个带空格的目录,将软件包复制过去,启动正常,因此排除,然后是“(”,同样操作,启动正常;
    最后是“)”,啊偶,启动失败,那么问题就是它了。

    问题深入分析

    既然知道了是什么导致我们的问题产生,那么就还需要知道为什么它会导致问题的产生,这才是学习技术的乐趣。
    既然是执行elasticsearch.bat这个脚本出现的问题,那么问题肯定能通过脚本源码找到答案,IDE打开脚本走起。

    脚本里面很关键的一句代码如下:

    @setlocal
    for /F "usebackq delims=" %%a in (`"%JAVA% -cp "%ES_CLASSPATH%" "org.elasticsearch.tools.launchers.JvmOptionsParser" "%ES_JVM_OPTIONS%" || echo jvm_options_parser_failed"`) do set JVM_OPTIONS=%%a
    @endlocal & set "MAYBE_JVM_OPTIONS_PARSER_FAILED=%JVM_OPTIONS%" & set ES_JAVA_OPTS=%JVM_OPTIONS:${ES_TMPDIR}=!ES_TMPDIR!% %ES_JAVA_OPTS%
    

    很明显%ES_CLASSPATH%这里需要执行带有括号的安装路径。
    自己对于VB的bat脚本语法不熟悉,只能求助网络。一番查找后得到相关信息:BAT文件命名中含有英文括号运行就会出错。
    到这里算问题基本解决,因为用不到VB也就没有对里面带到英文括号的问题进行更加深入的研究,后面自己使用的时候注意即可。
    以上纯属个人分析,如有谬误之处,多谢赐教!
    参考资料:
    https://blog.csdn.net/qq_40962368/article/details/87160693
    https://blog.csdn.net/kingo0/article/details/82114215

    相关文章

      网友评论

          本文标题:elasticsearch安装遇到错误“此时不应有 \elast

          本文链接:https://www.haomeiwen.com/subject/ewkhkhtx.html