CDH集群手动导入scm库

一、手动导入 scm 库

背景:正常安装 cloudera-scm-server 时,安装 scm 库是通过脚本 /usr/share/cmf/schema/scm_prepare_database.sh 来自动建库的。

/usr/share/cmf/schema/scm_prepare_database.sh mysql -h<mysql-host> -u<mysql-user> -p<mysql-pwd> --scm-host <scm-host> <scm-user> <scm-dbname> <scm-pwd>

其中

  • <mysql-host>,<mysql-user> <mysql-pwd> 是需要创建的 scm 库所在的 mysql 位置,对应的 mysql 的主机名,用户名和登录密码;
  • <scm-host>,<scm_user>,<scm-dbname>,<scm-pwd>分别对应 cloudera-scm-server 部署在的主机名,scm 库的登录用户,scm 库的库名,scm 库的登录密码。

但是,当在使用云服务器的 rds 实例作为远程 mysql 时,执行以上脚本会报权限不够的错误。而在本地部署的 mysql 实例执行以上脚本则不会报错,主要原因是<mysql-user>是通过 grant all 命令来授权的,而使用 rds 实例时 grant all 命名是无法执行的,也就是使用 rds 时只能 grant 指定权限给用户,这样可能会导致一部分权限丢失,执行上面的自动建库脚本就会报权限错误。

解决方法:

由于 cloudera-scm-server 服务在启动时会初始化 scm 库,自动创建需要的表,因此,可以考虑将已经建好表的 sql 语句 dump 到本地,然后导入到 rds 实例中。

步骤一:在本地一台机器部署mysql,安装 clouder-scm-server 服务,将初始的 scm 表 sql 导出。

mysqldump -uroot -p <scm-dbname> > A_dump.sql

步骤二:将备份的 sql 语句导入到线上 scm 库所在的地址。

mysql -h<mysql-host> -u<mysql-user> -p<mysql-pwd> <scm-dbname> < A_dump.sql

至此,scm 库的初始表已手到导入,配置 cloudera-scm-server 的 db 地址并启动服务即可。

二、配置服务的db地址并启动服务

1. 配置 cloudera-scm-server 的 db 地址

通过 ‘ yum install cloudera-manager-daemons cloudera-manager-server‘ 安装好 cloudera-scm-server 服务后,会生成一个 db 配置文件 /etc/cloudera-scm-server/db.properties ,修改配置文件的内容,执行 mysql 所在地址。 

1# Copyright (c) 2012 Cloudera, Inc. All rights reserved. 2# 3# This file describes the database connection. 4# 5 6# The database type 7# Currently 'mysql', 'postgresql' and 'oracle' are valid databases. 8#com.cloudera.cmf.db.type=mysql 9 10# The database host 11# If a non standard port is needed, use 'hostname:port' 12#com.cloudera.cmf.db.host=localhost 13 14# The database name 15#com.cloudera.cmf.db.name=cmf 16 17# The database user 18#com.cloudera.cmf.db.user=cmf 19 20# The database user's password 21#com.cloudera.cmf.db.password= 22 23# The db setup type 24# By default, it is set to INIT 25# If scm-server uses Embedded DB then it is set to EMBEDDED 26# If scm-server uses External DB then it is set to EXTERNAL 27#com.cloudera.cmf.db.setupType=INIT 28 29com.cloudera.cmf.db.type=mysql 30com.cloudera.cmf.db.host=<mysql-host> 31com.cloudera.cmf.db.name=<scm-dbname> 32com.cloudera.cmf.db.user=<scm-user> 33com.cloudera.cmf.db.setupType=EXTERNAL 34com.cloudera.cmf.db.password=<scm-pwd>

2. 启动 cloudera-scm-server 服务

/etc/init.d/cloudera-scm-server start

观察 cloudera-scm-server 服务是否正常运行,正常则表示手动导入的 scm 库没问题,登录 http://<scm-host>:7180/ 访问访问,初始账号 admin/admin。

【参考资料】

[1]. https://www.cloudera.com/documentation/enterprise/5-14-x/topics/cm_ig_installing_configuring_dbs.html#cmig_topic_5_2

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid