【问题标题】:CDH 5.3.2 - Need to restart impala daemon from shell/scriptCDH 5.3.2 - 需要从 shell/脚本重新启动 impala 守护进程
【发布时间】: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 设置正确,因此不确定它从哪里选择值。关于如何在这方面更进一步的任何指示?

【问题讨论】:

    标签: shell impala


    【解决方案1】:

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

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

    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
    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多