【问题描述】
社区开发版安装过程中出现问题,跳过后在页面一键启动服务,在启动Quark时出现以下报错。
【问题根因】
根因一:节点主机名配置错误
根因二:数据库中表缺失
下面我们展开复盘
【问题复盘】
根因一:主机名配置不当
1. 查看后台挂载目录下相关日志
通常出现问题时,需要查看相关产品服务的日志,比如Quark,但是因为此时服务初始化或启动失败,因此还未到产生相关日志的阶段,此时需要查看的是整个Manager安装阶段的日志,通常目录为 /用户挂载路径/log/transwarp-manager/master。例如下方绿色框所示。
查看后显示如下:
与此同时,Manager中Quark1组件服务状态依然不可用。
此时服务状态旁的详情,展示如下:
2. 发现问题
根据上图,发现用户主机名设置有大写字母,不符合要求。因此,需要修改主机名后重试,此处选择删除该容器重新启动一个容器的形式,重新安装产品服务。
根因二:数据库中表缺失
1. 修改后重试
重新创建容器,在Manager界面添加服务时仍报错,报错详情如下图:
查看Manager界面报错时右侧的查看日志,检查报错原因。
一个小tips:通常页面显示某一步骤失败,可以查看失败日志,日志里一般会提示是执行了什么命令,然后等待600s没变成健康状态,比如这个问题所对应的报错日志中有这么一个信息。
所以根据日志所提示的内容进一步排错,查看transwarp-quark-metastore@quark1该服务的状态是否有问题才导致start的时候失败。
2. 查看服务状态
执行docker ps -a命令查看容器id后,执行docker exec -it <containerid> bash的命令,进入容器。进入容器后执行 systemctl status transwarp-quark-metastore@quark1 命令查看服务状态
服务状态显示为失败,因此执行systemctl start transwarp-quark-metastore@quark1启动服务。
3. 修复后重试
执行完成后,在Manger界面重试启动Quark,仍报错。
4. 继续排查错误
进入容器后用journalctl -u查看metastore角色的信息,执行journalctl -u transwarp-quark-metastore@quark1
此时查看返回信息,信息显示缺失INCEPTOR_LIBRARY表。因此需要修复该问题。
5. 确认报错原因
连接数据库,指令:
mysql -h 127.0.0.1 -P 3308 -u inceptoruser --password=password metastore_quark1
发现上述缺失的表确实不存在,因此需要进行修复。
6. 问题修复
执行以下SQL命令修复表。
create table if not exists INCEPTOR_LIBRARY(library_name varchar(200) PRIMARY KEY, library_version varchar(100));
insert into INCEPTOR_LIBRARY values('data-dictionary',1.0);
执行后回到Manager界面进行重试,重试后即可启动Quark。问题解决。