场景:Azure HDInsight 中的 Apache HBase REST 未响应请求

本文介绍在与 Azure HDInsight 群集交互时出现的问题的故障排除步骤和可能的解决方案。

问题

Azure HDInsight 中的 Apache HBase REST 服务未响应请求。

原因

此处的可能原因是 Apache HBase REST 服务正在泄漏套接字,这种情况在服务长时间运行(例如运行了几个月)时尤其常见。 在客户端 SDK 中,可以看到如下所示的错误消息:

System.Net.WebException : Unable to connect to the remote server --->

System.Net.Sockets.SocketException : A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.0.0.19:8090

解决方法

通过 SSH 连接到主机后,使用以下命令重启 HBase REST。 也可以使用脚本操作在所有工作器节点上重启此服务:

sudo /usr/hdp/current/hbase-master/bin/hbase-daemon.sh restart rest

如果此问题仍旧出现,你可以安装以下缓解脚本 - 每隔 5 分钟在每个工作器节点上运行的 CRON 作业。 此缓解脚本将 ping REST 服务,并在 REST 服务无响应时将它重启。

#!/bin/bash
nc localhost 8090 < /dev/null
if [ $? -ne 0 ]
    then
    echo "RESTServer is not responding. Restarting"
    sudo /usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh restart rest
fi

后续步骤

如果你的问题未在本文中列出,或者无法解决问题,请访问以下渠道之一获取更多支持:

  • 如果需要更多帮助,可以从 Azure 门户提交支持请求。 从菜单栏中选择“支持” ,或打开“帮助 + 支持” 中心。