Trafodion Troubleshooting-org.apache.zookeeper.KeeperException$NoNodeException

本文记录了一次Trafodion启动失败的问题排查过程,分析了dcs_master和dcs_server日志中的错误信息,并最终定位到Zookeeper集群配置不一致导致的问题,通过更新dcs-site.xml文件中的zookeeper集群配置解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象

最近在一个客户环境中发现启动Trafodion时每次dcsstart后dcsserver立即变为Down的状态,查看相关dcs_master和dcs_server的日志如下,
–dcs master log

2017-08-29 13:05:10,895, ERROR, org.trafodion.dcs.master.ServerManager, Node Number: , CPU: , PID: , Process Name: , , ,exit code [1], stdout [server 21612. Stop it first.]
2017-08-29 13:05:10,895, INFO, org.trafodion.dcs.util.RetryCounter, Node Number: , CPU: , PID: , Process Name: , , ,Sleeping 2000ms before retry #1...
2017-08-29 13:05:12,896, INFO, org.trafodion.dcs.master.ServerManager, Node Number: , CPU: , PID: , Process Name: , , ,Restarting DcsServer [bdtest04.novalocal:1], script [

–dcs server log

2017-08-29 13:04:28,918, ERROR, org.trafodion.dcs.server.ServerManager, Node Number: , CPU: , PID: , Process Name: , , ,org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /trafodion/dcs/servers/registered/bdtest04.novalocal:1:4
2017-08-29 13:04:28,920, ERROR, org.trafodion.dcs.server.DcsServer, Node Number: , CPU: , PID: , Process Name: , , ,java.util.concurrent.ExecutionException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /trafodion/dcs/servers/registered/bdtest04.novalocal:1:4

分析

通过以上错误信息,怀疑可能是zookeeper中/trafodion/dcs/servers/registered/bdtest04.novalocal节点没有创建成功,因此去zkCLi.sh中查看,发现节点已经存在

解决

通过CDH Manager发现,由于之前某个节点硬盘损坏,导致其中一个zookeeper节点更换到其他节点,但相应的dcs-site.xml文件中的”dcs.zookeeper.quorum”并没有修改,因此修改dcs-site.xml文件并同步所有Trafodion节点后重启Trafodion,解决问题

<property>
<name>dcs.zookeeper.quorum</name>
<value>bdtest04.novalocal,bdtest06.novalocal,bdtest03.novalocal</value>
</property>
### Coverity Connect 错误分析与解决方案 当访问 `https://coverity01-cn.swf.i.mercedes-benz.com:443/get-data-url.cgi` 出现错误时,可能的原因包括网络连接问题、权限不足或服务器端配置不正确。以下是详细的排查和解决方法: #### 1. **验证网络连通性** 确保客户端能够通过 HTTPS 协议成功连接到目标 URL。可以使用以下命令测试网络连通性和 SSL 配置: ```bash curl -k https://coverity01-cn.swf.i.mercedes-benz.com:443/get-data-url.cgi ``` 如果上述命令返回 HTTP 响应状态码而非错误,则说明网络层面无明显问题[^1]。 #### 2. **检查证书有效性** 由于目标地址使用了 HTTPS 加密传输协议,需确认其 SSL/TLS 证书的有效性。可以通过浏览器或其他工具加载页面并查看证书详情。如果存在自签名证书或过期证书的情况,可能导致请求失败。此时可考虑临时忽略证书校验(仅用于调试),例如在 Jenkins 中设置 `-Djavax.net.ssl.trustStore` 参数指向可信的 keystore 文件[^2]。 #### 3. **审查服务端程序状态** 根据描述中的 Linux 脚本退出码 126 (`-bash:./deploy.sh:Permission denied`) 可推测可能是执行权限缺失所致[^3]。对于 Coverity Connect 的 CGI 接口而言,同样需要注意以下几个方面: - 确认 `/get-data-url.cgi` 是否具有正确的文件权限以及所属用户组匹配 Web 服务器进程的身份; - 如果该接口依赖外部库(如 PCRE 正则表达式引擎),还需保证这些资源已正确定位至预期路径下(例如 `/externals/pcre.lib` 或者由包管理器安装的位置)。 #### 4. **日志诊断** 收集来自多个组件的日志记录有助于定位根本原因: - 客户端侧:启用 verbose 输出模式来捕获更多细节信息。 - 应用层:查阅 Tomcat/Jetty 日志了解是否有未处理异常抛出。 - 操作系统级:利用 `journalctl` 查询最近发生的事件链路关联情况。 --- ### 示例代码片段 下面提供一段 Python 请求示例供参考如何安全地调用远程 API 并妥善处置潜在异常情形: ```python import requests url = 'https://coverity01-cn.swf.i.mercedes-benz.com:443/get-data-url.cgi' try: response = requests.get(url, verify=False) # Disable SSL verification temporarily during troubleshooting. if response.status_code != 200: raise Exception(f'Unexpected status code {response.status_code}') except Exception as e: print('Failed to retrieve data:', str(e)) finally: pass ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值