内容纲要
概要描述
TDH 组件启动的时候有些角色会覆盖式的修改配置文件,导致其他角色启动时候读取配置文件时读取不到某些数据,进而启动失败。
本案例介绍一种因guardian 服务的 Federation Server启动后,覆盖修改了msl-site.xml,导致和Federation Server在同一个节点的组件角色启动时读取 msl-site.xml 获取license信息失败。
本案例环境:TDH 6.2.0、guardian 3.1.0
详细说明
服务启动需要读取msl-site.xml,进而获取license信息,如果被其他组件修改了msl-site.xml,那么在启动日志会包含以下报错:
2019-11-05 17:02:18,375 ERROR io.transwarp.msl.tos.MSLTLSObserver: ERROR: Get response failed. null Url: [].no protocol:
2019-11-05 17:02:18,381 ERROR io.transwarp.msl.tos.TLSLicenseKernelLoader: failed to load license because license info is invalid because: null Url: [].no protocol:
2019-11-05 17:02:18,382 ERROR io.transwarp.msl.tos.MSLTLSObserver: ERROR: Get response failed. null Url: [].no protocol:
2019-11-05 17:02:18,382 ERROR io.transwarp.license.hbase.ProductionLicense: Can not set up license because java.io.IOException: license info is invalid because: null Url: [].no protocol:
2019-11-05 17:02:18,382 FATAL org.apache.hadoop.hbase.master.HMaster: Fatal exception during initialization
io.transwarp.license.hbase.LicenseException: License cannot be initialized!
at io.transwarp.license.hbase.ProductionLicense.(ProductionLicense.java:22)
at io.transwarp.license.hbase.ProductionLicense.getInstance(ProductionLicense.java:30)
at org.apache.hadoop.hbase.regionserver.HRegionServer.newLicense(HRegionServer.java:3479)
at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:915)
at java.lang.Thread.run(Thread.java:745)
此时检查 /etc/transwarp/conf/msl-site.xml
文件会发现内容已经被篡改了:
具体的原因:Federation Server的boot.sh直接调用了TDC环境的bootstrap.sh,在没有做判断就执行了cond,将msl-site.xml改成了TDC版本。
临时解决办法
1、针对启动失败的服务,配置服务;
配置服务后,Manager会自动根据当前集群的信息生成一个 msl-site.xml;
配置服务后查看当前正确的 TDH 集群的/etc/transwarp/conf/msl-site.xml
文件内容如下:
2、重启服务;
永久解决办法
针对guardian-3.1.0版本的Federation Server引起的问题,预计会在Guardian3.1.2版本修复