CDH 5.3.2 - 需要从 shell/脚本重新启动 impala 守护进程

Posted

技术标签:

【中文标题】CDH 5.3.2 - 需要从 shell/脚本重新启动 impala 守护进程【英文标题】:CDH 5.3.2 - Need to restart impala daemon from shell/script 【发布时间】:2017-09-18 12:12:03 【问题描述】:

我正在使用 CDH 5.3.2 集群并且需要能够从脚本启动/停止 impala 守护程序。 Cloudera Docs中提到的命令

sudo service impala-server start

在我的 CDH 5.10 本地 VM 上运行良好,但在 CDH 5.3.2 集群上我收到错误“impala-server:无法识别的服务”。在签入 /etc/init.d 时,我看到也没有列出这样的服务(而它在 5.10 版本中列出)

然后我尝试直接从impala bin目录重启服务

cd /usr/bin
./impalad stop

但是现在遇到以下错误:

E0918 11:55:27.815739 12046 JniFrontend.java:622] FileSystem is file:///
W0918 11:55:27.817589 12046 JniFrontend.java:534] Cannot detect CDH version. Skipping Hadoop configuration checks
E0918 11:55:27.817620 12046 impala-server.cc:210] Unsupported file system. Impala only supports DistributedFileSystem but the configured filesystem is: LocalFileSystem.fs.defaultFS(file:///) might be set incorrectly
E0918 11:55:27.817631 12046 impala-server.cc:212] Aborting Impala Server startup due to improper configuration

我在 Cloudera Manager 上检查了 core-site.xml,并且 fs.defaultFS 设置正确,因此不确定它从哪里选择值。关于如何在这方面更进一步的任何指示?

【问题讨论】:

【参考方案1】:

从命令行启动 Impala 的 init.d 服务包适用于想要使用 Cloudera Manager 的 CDH 用户。在 Cloudera Manager 集群上启动和停止 Impala 的正确方法是使用 CM API:

https://cloudera.github.io/cm_api/apidocs/v17/index.html

start cluster service API

stop cluster service API

commands API

tutorial 展示了如何使用 CM API,但对于您的情况,您可能需要这样做:

$ curl -X POST -u USER:PASSWORD \
'CM_URL//api/v1/clusters/CLUSTERNAME/services/IMPALA_SERVICE/commands/stop'

将 USER、PASSWORD、CM_URL、CLUSTERNAME、IMPALA_SERVICE_NAME 替换为适当的值。 curl 命令将返回一个命令 ID。

然后使用命令 ID 轮询此 API 以查看启动/停止操作是否已完成。

$ curl -u USER:PASSWORD 'CM_URL//api/v1/commands/COMMAND_ID'

但是,如果您仍想使用 init.d 服务包,则需要安装 impala-server 包。

【讨论】:

谢谢@tk421。我按照您的建议尝试使用 cm api: curl -u : 'http:///api/v1/clusters//services/impala/commands/stop '。但是该命令没有返回任何内容,也没有停止 impala 服务。我还尝试使用 curl -u : 'http:///api/v1/clusters//services/ 列出可用服务,并且 impala 确实列为其中之一运行服务。 我猜服务名称“impala”不正确。除了我已经尝试过的名称之外,我还能通过其他方式找到正确的名称吗? 做 curl -u : 'http:///api/v1/clusters//services' 然后查看“名称" 与“类型”相关的参数:“IMPALA”应该可以工作。 感谢@tk421 的支持。问题是我正在做一个 GET 调用而不是 POST。该命令运行良好 curl -X POST -u : 'http:///api/v1/clusters//services/impala/commands/stop

以上是关于CDH 5.3.2 - 需要从 shell/脚本重新启动 impala 守护进程的主要内容,如果未能解决你的问题,请参考以下文章

shell从入门到精通(13)输出重定向

shell从入门到精通(13)输出重定向

shell脚本基础

shell脚本基础

Shell脚本编程之Shell输入/输出重定向

在centos系统shell脚本中cat和重定向符号<<EOF结合使用的注意事项