1.启动失败异常描述
通过上篇文章《0573-5.16.1-如何将CDSW从1.4.2升级到1.5》升级CDSW服务后,启动CDSW服务在ClouderaManager上显示服务启动失败“”,使用cdswstatus命令查看CDSW服务中docker镜像启动情况显示如下:
上图显示db-migrate镜像启动失败,导致CDSW服务无法正常启动。
1.在命令行使用docker命令进入正在运行的web容器中
dockerexec-i-t8ebab7285577/bin/bash
进入正在运行的web容器中后执行脚本,脚本执行失败报错
2.根据提示的错误信息,在命令行执行db-migrateup--verbose--force-exit--configmigrations/–edb
3.通过上述命令返回的信息,可以看到执行三条SQL语句的时候报错
INSERTINTOengine_images(description,repository,tag)VALUES('BaseImagev7','/cdsw/engine','7');UPDATEsite_configSETdefault_engine_image_id=(SELECTidFROMengine_imagesWHERErepository='/cdsw/engine'ANDtag='7')WHEREdefault_engine_image_id=(SELECTidFROMengine_imagesWHERErepository='/cdsw/engine'ANDtag='6');DELETEFROMengine_imagesWHEREid(SELECTMAX(id)fromengine_images)ANDNOTEXISTS(SELECT1FROMusers);
4.通过docker命令进入正在运行的CDSW数据库db容器
[root@cdsw~]cd/usr/lib/postgresql/9.3/binroot@db-586cf7d4b6-8d987:/usr/lib/postgresql/9.3/bin\csensesense=#select*fromengine_images;
可以看到engine_images表中已插入了Base7的Image信息,再查看site_config表数据
发现UPDATE语句未执行成功。
5.在Postgresql的命令行重新执行Update语句
UPDATEsite_configSETdefault_engine_image_id=(SELECTidFROMengine_imagesWHERErepository='/cdsw/engine'ANDtag='7')WHEREdefault_engine_image_id=(SELECTidFROMengine_imagesWHERErepository='/cdsw/engine'ANDtag='6');
如上图显示数据更新成功。
6.此时回到CDSWweb容器的命令行下,再次执行脚本显示执行成功
7.完成上述操作后,再次使用cdswstatus命令查看显示如下
只有db-migrate镜像显示Faild,cdswweb服务已显示Running中,在这个时候已经可以通过浏览器访问CDSW服务并可以正常启动Session。
8.由于上述通过cdswstatus命令看到有db-migrate镜像启动失败,通过重启CDSW服务后状态显示正常
页面访问及Session运行均正常
1.db-migrate主要是用来CDSW版本升级后做DB数据迁移及升级执行脚本的镜像。
2.通过上述现象分析可以看到由于升级到1.5版本后,Postgresql数据库中一些SQL脚本升级执行失败导致。
3.db-migrate执行完成DB升级脚本后就会停止,与cdswstatus返回的信息是一致的。
版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。