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 所在地址。 

# 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM