前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术角 | 解决ES SQL命令行启动报错 ./x-pack-env: No such file or directory

技术角 | 解决ES SQL命令行启动报错 ./x-pack-env: No such file or directory

作者头像
ZNing
发布2020-07-21 15:16:35
6060
发布2020-07-21 15:16:35
举报
文章被收录于专栏:ZNing·腾创库ZNing·腾创库

今天在云服务器上,通过下载源码包完成有认证配置的Elasticsearch部署后,准备执行如下命令进入Elasticsearch SQL进行一些SQL语句的操作:

代码语言:javascript
复制
bin/elasticsearch-sql-cli uri=http://elastic:ESabc+2333@10.66.66.2:9200/

但执行后,发现使用bin/elasticsearch-sql-cli登录时,出错提示./x-pack-env: No such file or directory,莫名其妙,遂即查看下该脚本,内容如下:

代码语言:javascript
复制
#!/bin/bash

# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License;
# you may not use this file except in compliance with the Elastic License.

source "`dirname "$0"`"/elasticsearch-env

source "`dirname "$0"`"/x-pack-env

CLI_JAR=$(ls $ES_HOME/bin/elasticsearch-sql-cli-*.jar)

exec \
  "$JAVA" \
  -jar "$CLI_JAR" \
  "$@"

其中有效行第二行的source "`dirname "$0"`"/x-pack-env看来执行起来有问题,估计是在依赖导入生效时找不到路径。经过一番折腾,解决了该问题,即将该行替换为如下命令:

代码语言:javascript
复制
# source "`dirname "$0"`"/x-pack-env
source /usr/share/elasticsearch/bin/x-pack-env

即将引入依赖的路径写死即可,使用时请根据实际路径修改x-pack-env的指向路径。

修改完后,再用刚才的命令启动Elasticsearch SQL,正常进入,完美结局。

后来又仔细查找了下资料,发现该问题是Elasticsearch 7.4版本的一个小bug,在Elasticsearch 7.8的包内,bin/elasticsearch-sql-cli这个脚本内容已经修改为:

代码语言:javascript
复制
#!/bin/bash

# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License;
# you may not use this file except in compliance with the Elastic License.

source "`dirname "$0"`"/elasticsearch-env

source "$ES_HOME"/bin/x-pack-env

CLI_JAR=$(ls "$ES_HOME"/bin/elasticsearch-sql-cli-*.jar)

exec \
  "$JAVA" \
  "$XSHARE" \
  -jar "$CLI_JAR" \
  "$@"

也就是说,如果Elasticsearch 7.8安装时,操作系统环境变量内$ES_HOME能够正确设置的话,就可以正常启动Elasticsearch SQL了。这样比直接修改产品本身脚本来说要规范的多了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 慧响 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档