CDH集羣手動導入scm庫

1、手動導入 scm 庫

背景:正常安裝 cloudera-scm-server 時,安裝 scm 庫是經過腳本 /usr/share/cmf/schema/scm_prepare_database.sh 來自動建庫的。html

/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

  • <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 指定權限給用戶,這樣可能會致使一部分權限丟失,執行上面的自動建庫腳本就會報權限錯誤。sql

解決方法:服務器

因爲 cloudera-scm-server 服務在啓動時會初始化 scm 庫,自動建立須要的表,所以,能夠考慮將已經建好表的 sql 語句 dump 到本地,而後導入到 rds 實例中。oracle

步驟一:在本地一臺機器部署mysql,安裝 clouder-scm-server 服務,將初始的 scm 表 sql 導出。post

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

步驟二:將備份的 sql 語句導入到線上 scm 庫所在的地址。spa

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

至此,scm 庫的初始表已手到導入,配置 cloudera-scm-server 的 db 地址並啓動服務便可。postgresql

2、配置服務的db地址並啓動服務

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

經過 ‘ yum install cloudera-manager-daemons cloudera-manager-server‘ 安裝好 cloudera-scm-server 服務後,會生成一個 db 配置文件 /etc/cloudera-scm-server/db.properties ,修改配置文件的內容,執行 mysql 所在地址。 server

# Copyright (c) 2012 Cloudera, Inc. All rights reserved.
#
# This file describes the database connection.
#

# The database type
# Currently 'mysql', 'postgresql' and 'oracle' are valid databases.
#com.cloudera.cmf.db.type=mysql

# The database host
# If a non standard port is needed, use 'hostname:port'
#com.cloudera.cmf.db.host=localhost

# The database name
#com.cloudera.cmf.db.name=cmf

# The database user
#com.cloudera.cmf.db.user=cmf

# The database user's password
#com.cloudera.cmf.db.password=

# The db setup type
# By default, it is set to INIT
# If scm-server uses Embedded DB then it is set to EMBEDDED
# If scm-server uses External DB then it is set to EXTERNAL
#com.cloudera.cmf.db.setupType=INIT

com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=<mysql-host>
com.cloudera.cmf.db.name=<scm-dbname>
com.cloudera.cmf.db.user=<scm-user>
com.cloudera.cmf.db.setupType=EXTERNAL
com.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

相關文章
相關標籤/搜索