专栏首页Hadoop实操0574-5.16.1-CDSW1.4升级1.5版本db-migrate镜像启动失败问题解决

0574-5.16.1-CDSW1.4升级1.5版本db-migrate镜像启动失败问题解决

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

启动失败异常描述

通过上篇文章《0573-5.16.1-如何将CDSW从1.4.2升级到1.5》升级CDSW服务后,启动CDSW服务在Cloudera Manager上显示服务启动失败“”,使用cdsw status命令查看CDSW服务中docker镜像启动情况显示如下:

上图显示db-migrate镜像启动失败,导致CDSW服务无法正常启动。

2

问题解决

1.在命令行使用docker命令进入正在运行的web容器中

docker exec -i -t 8ebab7285577 /bin/bash

进入正在运行的web容器中后执行sh run-db-migrations.sh脚本,脚本执行失败报错

2.根据提示的错误信息,在命令行执行db-migrate up --verbose --force-exit --config migrations/db.json –e db

3.通过上述命令返回的信息,可以看到执行三条SQL语句的时候报错

INSERT INTO engine_images (description, repository, tag) VALUES ('Base Image v7', 'docker.repository.cloudera.com/cdsw/engine', '7');
UPDATE site_config
SET default_engine_image_id = (
    SELECT id
    FROM engine_images
    WHERE repository = 'docker.repository.cloudera.com/cdsw/engine'
        AND tag = '7'
)
WHERE default_engine_image_id = (
        SELECT id
        FROM engine_images
        WHERE repository = 'docker.repository.cloudera.com/cdsw/engine'
            AND tag = '6'
    );
DELETE FROM engine_images WHERE id < (SELECT MAX(id) from engine_images) AND NOT EXISTS (SELECT 1 FROM users);

4.通过docker命令进入正在运行的CDSW数据库db容器

[root@cdsw ~]# docker exec -i -t e8f50e3d659a /bin/bash
root@db-586cf7d4b6-8d987:/# cd /usr/lib/postgresql/9.3/bin
root@db-586cf7d4b6-8d987:/usr/lib/postgresql/9.3/bin# su postgres
postgres@db-586cf7d4b6-8d987:/usr/lib/postgresql/9.3/bin$ ./psql
postgres=# \c sense
sense=# select * from engine_images;

可以看到engine_images表中已插入了Base 7的Image信息,再查看site_config表数据

发现UPDATE语句未执行成功。

5.在Postgresql的命令行重新执行Update语句

UPDATE site_config
SET default_engine_image_id = (
    SELECT id
    FROM engine_images
    WHERE repository = 'docker.repository.cloudera.com/cdsw/engine'
        AND tag = '7'
)
WHERE default_engine_image_id = (
        SELECT id
        FROM engine_images
        WHERE repository = 'docker.repository.cloudera.com/cdsw/engine'
            AND tag = '6'
    );

如上图显示数据更新成功。

6.此时回到CDSW web容器的命令行下,再次执行sh run-db-migrations.sh脚本显示执行成功

7.完成上述操作后,再次使用cdsw status命令查看显示如下

只有db-migrate镜像显示Faild,cdsw web服务已显示Running中,在这个时候已经可以通过浏览器访问CDSW服务并可以正常启动Session。

8.由于上述通过cdsw status命令看到有db-migrate镜像启动失败,通过重启CDSW服务后状态显示正常

页面访问及Session运行均正常

3

总结

1.db-migrate主要是用来CDSW版本升级后做DB数据迁移及升级执行脚本的镜像。

2.通过上述现象分析可以看到由于CDSW1.4升级到1.5版本后,Postgresql数据库中一些SQL脚本升级执行失败导致。

3.db-migrate执行完成DB升级脚本后就会停止,与cdsw status返回的信息是一致的。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f),作者:Fayson

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 0672-5.16.1-CDSW中Run Experiments异常分析

    从CDSW (Cloudera Data Science Workbench) 1.4开始,CDSW中新增了一个Experiments 功能,它允许数据科学家运...

    Fayson
  • Flume 在有赞大数据的实践

    Flume 在有赞的大数据业务中一直扮演着一个稳定可靠的日志数据“搬运工”的角色。本文主要讲一下有赞大数据部门在 Flume 的应用实践,同时也穿插着我们对 F...

    Fayson
  • 0708-5.16.2-如何将CM内嵌PostgreSQL服务迁移至外部PostgreSQL服务

    Cloudera Manager提供了一个嵌入式PostgreSQL数据库服务,用于在创建集群时进行演示和概念验证部署。为了提醒用户此嵌入式数据库不适合生产,C...

    Fayson
  • Flask(数据库操作 十一)

    支持的字段操作:ColumnOperators:/usr/local/lib/python3.7/site-packages/sqlalchemy/sql/op...

    zx钟
  • 关于数据库Prepare返回指针的的问题

    先写问题,代码在下面。 写入数据库可以这么写: stmt,err:=db.Prepare(`insert into user_tb(userid,userNo)...

    李海彬
  • MongoDB 学习笔记

    感谢 Karl Seguin 编写的 The Little MongoDB Book 这本 MongoDB 入门书。

    柳公子
  • 【Docker】更新docker镜像源

    使用 docker 拉取 Docker Hub 上镜像时,可能会由于网络限制,导致下载失败。可以将 docker 的镜像源设置为国内的镜像, 目前支持的镜像源...

    程序小工
  • mongo 常用语句

    登录    mongo localhost:40000/3idata 统计   db.data_02_import_fail.find({importS...

    week
  • centos7 docker安装详解

    程序员同行者
  • 如何在Ubuntu上使用Jenkins自动构建

    Jenkins是一个开源自动化服务器,允许您构建管道以自动化构建,测试和部署应用程序的过程。在本指南中,您将实施基本工作流程,以加快持续集成和持续交付(CI /...

    Techeek

扫码关注云+社区

领取腾讯云代金券