日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务

發布時間:2024/4/14 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文檔編寫目的

在前面的文章《6.3.0-如何將CM內嵌PostgreSQL服務遷移至外部PostgreSQL服務》介紹了將CM內嵌的PostgreSQL遷移至外部PostgreSQL,因為CM內嵌的PostgreSQL數據庫不支持直接遷移至MySQL。本篇文章Fayson主要介紹如何將集群使用的外部PostgreSQL遷移至MySQL數據庫。

注意:不支持直接從Cloudera Manager嵌入式PostgreSQL遷移到MySQL / Oracle數據庫。您必須首先從Cloudera Manager嵌入式PostgreSQL數據庫服務器遷移到外部PostgreSQL數據庫服務器。

只有在成功從嵌入式PostgreSQL數據庫服務器遷移到外部PostgreSQL數據庫服務器后,才能遷移到外部MySQL或Oracle數據庫。

  • 內容概述

  • 安裝Mariadb服務

  • 數據庫遷移

  • 驗證

  • 總結

    • 測試環境

  • CM和CDH版本均為6.3.0

  • 采用root用戶

  • 遷移前集群環境確認

    CM元數據庫類型為postgresql

    cat /etc/cloudera-scm-server/db.properties

    Hue用戶及用戶組

    Hue的數據庫類型為PostgreSQL

    用戶信息

    用戶組信息

    管理員信息

    Hive數據庫及表信息

    Hive的數據庫類型為PostgreSQL

    如下所示,當前hive中有default和test兩個數據庫;default數據庫中有兩個表。

    查看table_partitioned表的數據

    Sentry授權信息

    Sentry的數據庫類型為PostgreSQL

    Sentry的授權信息如下

    安裝MySQL

    選一臺節點安裝MariaDB服務

    yum -y install mariadb mariadb-server

    啟動mariadb服務并設置為開機自啟動

    systemctl start mariadbsystemctl enable mariadbsystemctl status mariadb | grep Active

    初始化MariaDB數據庫

    /usr/bin/mysql_secure_installation

    使用root用戶登錄查看當前數據庫

    安裝MySQL JDBC驅動

    將mysql驅動上傳至/usr/share/java目錄,并以軟鏈接的方式去掉驅動版本號

    遷移CM元數據庫

    導出Cloudera Manager配置文件

    獲取當前支持的API版本

    curl -u admin:admin "http://192.168.0.204:7180/api/version"

    導出json格式配置文件

    curl -u admin:admin "http://192.168.0.204:7180/api/v33/cm/deployment" > /root/cm/cm-deployment.json

    執行如下命令,保留Cloudera Manager的GUID號

    sudo -u postgres psql -qtAX scm -c "select GUID from CM_VERSION" > /etc/cloudera-scm-server/uuid

    停止集群和Cloudera Management Service服務

    在CM節點上執行如下命令停止cloudera-scm-server服務

    systemctl stop cloudera-scm-serversystemctl status cloudera-scm-server | grep Active

    登錄MySQL執行如下SQL語句創建scm數據庫及用戶并授權

    create database scm default character set utf8;CREATE USER 'scm'@'%' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';FLUSH PRIVILEGES;

    執行如下命令,初始化Cloudera Manager數據庫配置

    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password

    清空所有節點的/var/run/cloudera-scm-agent/process/目錄

    使用批量命令,停止集群所有節點的agent和supervisor服務

    sh ssh_do_all.sh node.list 'systemctl stop supervisord'sh ssh_do_all.sh node.list 'systemctl stop cloudera-scm-agent'

    查看進程是否已被停止

    ps -ef | grep cmf-agentps -ef | grep supervisord

    使用批量命令,使用mv命令將集群所有節點的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*'

    使用批量命令,啟動集群所有節點的cloudera-scm-agent服務

    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

    接收許可條款,【繼續】

    如果有許可證,上傳許可證,沒有許可證選擇企業試用版,【繼續】,然后單擊左上角返回CM主頁

    注意:必須要上傳許可證或者選擇試用版繼續之后再返回主頁,否則會導致使用curl導入集群配置時失敗。

    單擊左上角返回CM主頁

    當前CM主頁狀態如下:

    執行如下命令調用CM API接口,恢復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配置已導入成功

    啟動服務

    啟動Cloudera Mangement Service

    Cloudera Management Service啟動成功后,等待parcel分發完成,然后啟動集群服務并分發客戶端配置。

    查看集群CM元數據庫使用的數據庫服務器,如下所示,此時已遷移至MySQL

    cat /etc/cloudera-scm-server/db.properties

    遷移集群其他服務元數據庫

    此時只有CM的數據庫scm遷移到了MySQL,集群其他服務的元數據庫(Hive、Sentry、Hue、Oozie等)仍然配置的為PostgreSQL,接下來主要介紹通過使用工具將PostgreSQL數據庫遷移至MySQL數據庫,如下示例以遷移Hive元數據庫為例。

    下載安裝數據庫轉換工具 DBConvert for MySQL & PostgreSQL,下載地址如下:

    https://dbconvert.com/downloads/dbconvert_mysql_postgresql.zip

    下載完成之后解壓,執行dbconvert_mysql_postgresql文件夾下的setup.exe進行安裝

    安裝完成后打開該軟件,選擇【Try】使用版

    這里以hive元數據庫轉換為例,配置PostgreSQL數據庫連接信息

    測試連接成功,單擊下一步

    此時會顯示數據庫中的所有表,全部勾選;然后單擊【OK】

    配置目標數據庫連接信息(即我們要遷移的MySQL信息)

    測試連接成功后單擊【Next】

    自定義要轉換的表,然后單擊【Next】

    單擊【commit】開始進行轉換

    轉換成功后顯示如下

    然后依次轉換其他數據庫即可

    注意:轉換hue數據庫時,有些表因為外鍵的原因不能被轉換,根據提示取消相關外鍵即可

    數據庫遷移完成后,登錄mysql查看數據庫如下:

    創建用戶并授予數據庫上的權限

    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;

    更換數據庫服務器

    進入Hive配置頁面,修改Hive的Metastore數據庫類型為MySQL,然后修改其在 MySQL中的數據庫名稱

    完成上述修改后,然后回到CM主頁,根據提示重啟相關服務

    服務重啟完成后,此時數據庫已遷移至MySQL數據庫服務器。

    遷移后驗證

    Hue驗證

    查看Hue當前數據庫類型為MySQL

    使用管理員賬號admin登錄Hue驗證數據是否完整

    admin用戶的管理員權限與遷移前一致

    遷移后的用戶信息與遷移前數據一致

    用戶組信息與遷移前信息一致

    Hive驗證

    查看Hive當前數據庫類型為MySQL

    通過Hue查看Hive數據庫以及表信息如下:

    查看分區表數據如下:

    查看分區表結構如下:

    由上圖可知,數據庫遷移完成后Hive的數據庫、表、表結構以及表數據均遷移成功。

    Sentry驗證

    查看Sentry當前數據庫類型為MySQL

    通過Hue查看Sentry的授權信息如下:

    使用hive用戶進行建表測試

    建表成功

    向表中插入數據,數據插入成功

    執行查詢操作,查詢成功

    總結
  • 將Cloudera Manager服務使用的PostgreSQL遷移至MySQL時,主要通過CM API接口導出集群配置信息json文件,再通過CM API接口導入完成數據庫的遷移。

  • 集群其它服務(Hive、Sentry、Oozie、Hue等)在遷移時并未相應的API接口實現,主要是通過DBConvert for MySQL & PostgreSQL工具將PostgreSQL數據的數據轉換為MySQL數據庫的方式解決。

  • 在進行Hue數據庫轉換的過程中由于部分表外鍵的問題,導致轉換失敗,需要將報錯的外鍵取消勾選。

  • 總結

    以上是生活随笔為你收集整理的ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。