ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务
在前面的文章《6.3.0-如何將CM內(nèi)嵌PostgreSQL服務(wù)遷移至外部PostgreSQL服務(wù)》介紹了將CM內(nèi)嵌的PostgreSQL遷移至外部PostgreSQL,因?yàn)镃M內(nèi)嵌的PostgreSQL數(shù)據(jù)庫不支持直接遷移至MySQL。本篇文章Fayson主要介紹如何將集群使用的外部PostgreSQL遷移至MySQL數(shù)據(jù)庫。
注意:不支持直接從Cloudera Manager嵌入式PostgreSQL遷移到MySQL / Oracle數(shù)據(jù)庫。您必須首先從Cloudera Manager嵌入式PostgreSQL數(shù)據(jù)庫服務(wù)器遷移到外部PostgreSQL數(shù)據(jù)庫服務(wù)器。
只有在成功從嵌入式PostgreSQL數(shù)據(jù)庫服務(wù)器遷移到外部PostgreSQL數(shù)據(jù)庫服務(wù)器后,才能遷移到外部MySQL或Oracle數(shù)據(jù)庫。
內(nèi)容概述
安裝Mariadb服務(wù)
數(shù)據(jù)庫遷移
驗(yàn)證
總結(jié)
測試環(huán)境
CM和CDH版本均為6.3.0
采用root用戶
CM元數(shù)據(jù)庫類型為postgresql
cat /etc/cloudera-scm-server/db.propertiesHue用戶及用戶組
Hue的數(shù)據(jù)庫類型為PostgreSQL
用戶信息
用戶組信息
管理員信息
Hive數(shù)據(jù)庫及表信息
Hive的數(shù)據(jù)庫類型為PostgreSQL
如下所示,當(dāng)前hive中有default和test兩個(gè)數(shù)據(jù)庫;default數(shù)據(jù)庫中有兩個(gè)表。
查看table_partitioned表的數(shù)據(jù)
Sentry授權(quán)信息
Sentry的數(shù)據(jù)庫類型為PostgreSQL
Sentry的授權(quán)信息如下
安裝MySQL選一臺節(jié)點(diǎn)安裝MariaDB服務(wù)
yum -y install mariadb mariadb-server啟動mariadb服務(wù)并設(shè)置為開機(jī)自啟動
systemctl start mariadbsystemctl enable mariadbsystemctl status mariadb | grep Active初始化MariaDB數(shù)據(jù)庫
/usr/bin/mysql_secure_installation使用root用戶登錄查看當(dāng)前數(shù)據(jù)庫
安裝MySQL JDBC驅(qū)動
將mysql驅(qū)動上傳至/usr/share/java目錄,并以軟鏈接的方式去掉驅(qū)動版本號
遷移CM元數(shù)據(jù)庫導(dǎo)出Cloudera Manager配置文件
獲取當(dāng)前支持的API版本
curl -u admin:admin "http://192.168.0.204:7180/api/version"導(dǎo)出json格式配置文件
curl -u admin:admin "http://192.168.0.204:7180/api/v33/cm/deployment" > /root/cm/cm-deployment.json執(zhí)行如下命令,保留Cloudera Manager的GUID號
sudo -u postgres psql -qtAX scm -c "select GUID from CM_VERSION" > /etc/cloudera-scm-server/uuid停止集群和Cloudera Management Service服務(wù)
在CM節(jié)點(diǎn)上執(zhí)行如下命令停止cloudera-scm-server服務(wù)
systemctl stop cloudera-scm-serversystemctl status cloudera-scm-server | grep Active登錄MySQL執(zhí)行如下SQL語句創(chuàng)建scm數(shù)據(jù)庫及用戶并授權(quán)
create database scm default character set utf8;CREATE USER 'scm'@'%' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';FLUSH PRIVILEGES;執(zhí)行如下命令,初始化Cloudera Manager數(shù)據(jù)庫配置
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password清空所有節(jié)點(diǎn)的/var/run/cloudera-scm-agent/process/目錄
使用批量命令,停止集群所有節(jié)點(diǎn)的agent和supervisor服務(wù)
sh ssh_do_all.sh node.list 'systemctl stop supervisord'sh ssh_do_all.sh node.list 'systemctl stop cloudera-scm-agent'查看進(jìn)程是否已被停止
ps -ef | grep cmf-agentps -ef | grep supervisord使用批量命令,使用mv命令將集群所有節(jié)點(diǎn)的agent目錄備份
sh ssh_do_all.sh node.list 'mv /var/run/cloudera-scm-agent /var/run/cloudera-scm-agent-BU'sh ssh_do_all.sh node.list 'ls /var/run | grep cloudera-scm-agent*'使用批量命令,啟動集群所有節(jié)點(diǎn)的cloudera-scm-agent服務(wù)
sh ssh_do_all.sh node.list 'systemctl start cloudera-scm-agent'sh ssh_do_all.sh node.list 'systemctl status cloudera-scm-agent | grep Active'啟動Cloudera Manager Server
systemctl start cloudera-scm-servernetstat -lnpt | grep 7180使用超級管理員用戶登錄CM
接收許可條款,【繼續(xù)】
如果有許可證,上傳許可證,沒有許可證選擇企業(yè)試用版,【繼續(xù)】,然后單擊左上角返回CM主頁
注意:必須要上傳許可證或者選擇試用版繼續(xù)之后再返回主頁,否則會導(dǎo)致使用curl導(dǎo)入集群配置時(shí)失敗。
單擊左上角返回CM主頁
當(dāng)前CM主頁狀態(tài)如下:
執(zhí)行如下命令調(diào)用CM API接口,恢復(fù)Cloudera Manager配置
curl -v -H "Content-Type: application/json" --upload-file /root/cm/cm-deployment.json -u admin:admin "http://192.168.0.204:7180/api/v33/cm/deployment?deleteCurrentDeployment=true"再次查看CM主頁,CM配置已導(dǎo)入成功
啟動服務(wù)
啟動Cloudera Mangement Service
Cloudera Management Service啟動成功后,等待parcel分發(fā)完成,然后啟動集群服務(wù)并分發(fā)客戶端配置。
查看集群CM元數(shù)據(jù)庫使用的數(shù)據(jù)庫服務(wù)器,如下所示,此時(shí)已遷移至MySQL
cat /etc/cloudera-scm-server/db.properties遷移集群其他服務(wù)元數(shù)據(jù)庫此時(shí)只有CM的數(shù)據(jù)庫scm遷移到了MySQL,集群其他服務(wù)的元數(shù)據(jù)庫(Hive、Sentry、Hue、Oozie等)仍然配置的為PostgreSQL,接下來主要介紹通過使用工具將PostgreSQL數(shù)據(jù)庫遷移至MySQL數(shù)據(jù)庫,如下示例以遷移Hive元數(shù)據(jù)庫為例。
下載安裝數(shù)據(jù)庫轉(zhuǎn)換工具 DBConvert for MySQL & PostgreSQL,下載地址如下:
https://dbconvert.com/downloads/dbconvert_mysql_postgresql.zip
下載完成之后解壓,執(zhí)行dbconvert_mysql_postgresql文件夾下的setup.exe進(jìn)行安裝
安裝完成后打開該軟件,選擇【Try】使用版
這里以hive元數(shù)據(jù)庫轉(zhuǎn)換為例,配置PostgreSQL數(shù)據(jù)庫連接信息
測試連接成功,單擊下一步
此時(shí)會顯示數(shù)據(jù)庫中的所有表,全部勾選;然后單擊【OK】
配置目標(biāo)數(shù)據(jù)庫連接信息(即我們要遷移的MySQL信息)
測試連接成功后單擊【Next】
自定義要轉(zhuǎn)換的表,然后單擊【Next】
單擊【commit】開始進(jìn)行轉(zhuǎn)換
轉(zhuǎn)換成功后顯示如下
然后依次轉(zhuǎn)換其他數(shù)據(jù)庫即可
注意:轉(zhuǎn)換hue數(shù)據(jù)庫時(shí),有些表因?yàn)橥怄I的原因不能被轉(zhuǎn)換,根據(jù)提示取消相關(guān)外鍵即可
數(shù)據(jù)庫遷移完成后,登錄mysql查看數(shù)據(jù)庫如下:
創(chuàng)建用戶并授予數(shù)據(jù)庫上的權(quán)限
CREATE USER 'hive'@'%' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';FLUSH PRIVILEGES;CREATE USER 'sentry'@'%' IDENTIFIED BY 'password';?GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';? ?FLUSH PRIVILEGES;CREATE USER 'rman'@'%' IDENTIFIED BY 'password';?GRANT ALL PRIVILEGES ON rman. * TO 'rman'@'%';?FLUSH PRIVILEGES;CREATE USER 'hue'@'%' IDENTIFIED BY 'password';?GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%';??FLUSH PRIVILEGES;CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';?GRANT ALL PRIVILEGES ON oozie. * TO 'oozie'@'%';?FLUSH PRIVILEGES;更換數(shù)據(jù)庫服務(wù)器
進(jìn)入Hive配置頁面,修改Hive的Metastore數(shù)據(jù)庫類型為MySQL,然后修改其在 MySQL中的數(shù)據(jù)庫名稱
完成上述修改后,然后回到CM主頁,根據(jù)提示重啟相關(guān)服務(wù)
服務(wù)重啟完成后,此時(shí)數(shù)據(jù)庫已遷移至MySQL數(shù)據(jù)庫服務(wù)器。
遷移后驗(yàn)證Hue驗(yàn)證
查看Hue當(dāng)前數(shù)據(jù)庫類型為MySQL
使用管理員賬號admin登錄Hue驗(yàn)證數(shù)據(jù)是否完整
admin用戶的管理員權(quán)限與遷移前一致
遷移后的用戶信息與遷移前數(shù)據(jù)一致
用戶組信息與遷移前信息一致
Hive驗(yàn)證
查看Hive當(dāng)前數(shù)據(jù)庫類型為MySQL
通過Hue查看Hive數(shù)據(jù)庫以及表信息如下:
查看分區(qū)表數(shù)據(jù)如下:
查看分區(qū)表結(jié)構(gòu)如下:
由上圖可知,數(shù)據(jù)庫遷移完成后Hive的數(shù)據(jù)庫、表、表結(jié)構(gòu)以及表數(shù)據(jù)均遷移成功。
Sentry驗(yàn)證
查看Sentry當(dāng)前數(shù)據(jù)庫類型為MySQL
通過Hue查看Sentry的授權(quán)信息如下:
使用hive用戶進(jìn)行建表測試
建表成功
向表中插入數(shù)據(jù),數(shù)據(jù)插入成功
執(zhí)行查詢操作,查詢成功
總結(jié)將Cloudera Manager服務(wù)使用的PostgreSQL遷移至MySQL時(shí),主要通過CM API接口導(dǎo)出集群配置信息json文件,再通過CM API接口導(dǎo)入完成數(shù)據(jù)庫的遷移。
集群其它服務(wù)(Hive、Sentry、Oozie、Hue等)在遷移時(shí)并未相應(yīng)的API接口實(shí)現(xiàn),主要是通過DBConvert for MySQL & PostgreSQL工具將PostgreSQL數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換為MySQL數(shù)據(jù)庫的方式解決。
在進(jìn)行Hue數(shù)據(jù)庫轉(zhuǎn)換的過程中由于部分表外鍵的問題,導(dǎo)致轉(zhuǎn)換失敗,需要將報(bào)錯的外鍵取消勾選。
總結(jié)
以上是生活随笔為你收集整理的ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32数据手册boot_STM32的
- 下一篇: mysql python 3.5_pyt