EasyMR 基於國產化信創的適配實踐技術詳解

来源:https://www.cnblogs.com/DTinsight/p/18206142
-Advertisement-
Play Games

國產化信創,即採用國產信息技術產品和服務,構建自主可控的信息技術體系。近年來,隨著國家對網路安全和信息安全的重視程度不斷提高,國產化信創已經成為國家戰略的重要組成部分,並呈現出以下大趨勢: ● 政策驅動,加速發展 國家出台了一系列政策法規,大力支持國產化信創產業發展。例如,《“十四五”數字經濟發展規 ...


國產化信創,即採用國產信息技術產品和服務,構建自主可控的信息技術體系。近年來,隨著國家對網路安全和信息安全的重視程度不斷提高,國產化信創已經成為國家戰略的重要組成部分,並呈現出以下大趨勢:

● 政策驅動,加速發展

國家出台了一系列政策法規,大力支持國產化信創產業發展。例如,《“十四五”數字經濟發展規劃》提出,到2025年,關鍵信息技術領域核心技術攻關取得突破性進展,關鍵軟體、硬體產品和服務實現替代能力顯著增強。《“十四五”國家信息化規劃》提出,加快構建安全可控的數字基礎設施,推進關鍵信息技術領域自主研發應用。

在政策的強力推動下,國產化信創產業發展勢頭迅猛,市場規模不斷擴大。據統計,2023年中國信創產業市場規模突破1萬億元,預計到2025年將達到2萬億元以上。

● 技術突破,生態構建

國產化信創產業的核心是技術攻關和生態構建。近年來,國產操作系統、資料庫、中間件等基礎軟體產品取得了重大進展,性能和穩定性不斷提升,與國外產品差距逐漸縮小。同時,國產信創生態體系也在逐步完善,應用軟體、安全產品等配套產品和服務得到不斷的豐富和創新。

● 應用拓展,場景多樣

國產化信創的應用場景不斷拓展,從黨政機關、金融、電信等關鍵領域向教育、醫療、交通等更多行業延伸。例如,在教育領域,北京、上海等地已經開展了高校信創試點工作;在醫療領域,多家醫院已經部署了國產化信創系統。

● 安全可控,自主可控

國產化信創的根本目標是實現信息技術的自主可控和安全可控。通過採用國產信息技術產品和服務,有效降低信息安全風險,提升國家信息安全水平。

總體而言,國產化信創是時代發展的必然趨勢,具有廣闊的市場前景,未來,隨著技術的不斷進步和應用場景的不斷拓展,國產化信創將迎來更加快速發展的新階段。

EasyMR 基於國產化信創適配的支持

EasyMR,作為袋鼠雲基於雲原生技術和 Hadoop、Hive、Spark、Flink、Hbase、Presto 等開源大數據組件構建的彈性計算引擎。提供安全可靠、低成本、彈性伸縮的大數據存儲與計算服務,並實現 Hadoop 集群的一站式創建、管理、部署、運維與監控。

EasyMR 的核心組件採用國產化自研方式,已成功適配多種國產操作系統和處理器,包括:

· 銀河麒麟V10(Intel X86、鯤鵬920、飛騰2000)

· 銀河麒麟V4(Intel X86、飛騰2000)

· 中標麒麟V7.6(Intel X86)

· 統信UOS V20(Intel X86、鯤鵬920)

· 龍蜥8.4(Intel X86)

在國產化信創資料庫方面,EasyMR 已經適配了達夢8資料庫,並且將資料庫層的增刪改查操作做了一層抽象介面。這種設計使得未來適配其他國產化信創資料庫變得十分簡便。

接下來將從技術實現的角度詳細介紹 EasyMR 組件如何適配國產化操作系統和處理器。

關於 Docker Buildx

在 EasyMR 的私有化部署過程中,我們選擇了 Docker 作為部署媒介。Docker 是一種輕量級容器化平臺,可以簡化應用程式的部署、管理和擴展。與傳統的虛擬機相比,Docker 具有更快的啟動時間、更高的資源利用率、更強的可移植性、更容易部署和管理等優勢。因此,將 EasyMR 的各個組件打包成 Docker 鏡像進行私有化部署,可以顯著提高運維部署的效率,降低問題出現的概率。

在適配國產化信創組件時,我們面臨的主要問題是如何在 Docker 環境中構建適配這些組件的鏡像。為瞭解決這個問題,我們引入了 Docker Buildx 工具。Docker Buildx 支持構建跨平臺的 Docker 鏡像,可以輕鬆適配不同的操作系統和處理器架構。

Docker Buildx 是一個強大的工具,它簡化了在多種 CPU 架構上構建和發佈 Docker 鏡像的過程。本節將重點介紹如何基於 Linux 創建多架構 Docker 鏡像,並展示打包鏡像的方法以及如何在不同主機環境中配置 Docker Buildx。以 Ubuntu/Debian 的發行版本為例進行說明。

● Docker Buildx 如何編譯多版本的服務

Docker Buildx 支持多架構構建,主要有兩種方式:一是使用不同架構的原生 builder;二是通過 QEMU 處理器模擬器實現。本文將重點討論 QEMU,因為這是一個純粹的基於軟體的解決方案,無需擁有運行在不同架構上的伺服器即可運行。

QEMU 的工作原理是通過模仿在伺服器/處理器上設置好的來自外部 CPU 類型的所有指令。例如,在 x86架構的機器上,QEMU 可以模擬 ARM 架構的 CPU 指令。使用 QEMU 模擬器,可以在伺服器上運行不同架構的二進位文件。

幸運的是,Linux 同樣也有對運行非原生二進位文件的內建支持——binfmt_misc。當 Linux 嘗試執行一個二進位文件時,會檢查 binfmt_misc 是否註冊了該文件類型的 handler。如果已註冊,這個 handler 將被調用執行該二進位文件。

在本案例中,我們將利用 binfmt_misc 模塊,顯式執行 QEMU 模擬的外部 CPU 架構的二進位文件。

● 使用 Docker Buildx 的軟體需求

如果想使用 Docker Buildx 構建鏡像,需要滿足以下幾個條件:

· Docker>=19.03: Docker 本身需要包含 Buildx 特性

· Experimental 模式要打開

· Linux 內核版本>=4.8: binfmt_misc 需要 Linux 內核支持F參數

· 掛載 binfmt_misc 文件系統

· 主機模式或者 Docker 鏡像安裝 QEMU 和 binfmt_misc 支持工具

如果使用的是 Docker Desktop(>=2.1.0版本),比如在 Mac OSX 或者 Windows 上,那麼就無需其他配置,因為它已經滿足了上面所有的需求。以下是針對在 Linux x86 架構機器上,特別是以 Ubuntu 22.04 為例,安裝和配置 Docker Buildx 運行環境的步驟。

Docker Buildx 安裝步驟

01 安裝 Docker

在19.03以後的 Docker 版本才支持 Buildx,所以部署的 Docker 版本至少得是這個版本,可以用下麵的命令檢查:

root@localhost:~# docker --version
Docker version 25.0.3, build 4debf41

如果伺服器上沒有安裝 Docker,那麼可以試著用對應 Docker Linux 發行版安裝。

sudo apt-get install -y docker-ce

02 開啟 Docker Experimental 特性

可以通過兩種方式開啟 Experimental 特性

· 通過設置環境變數

export DOCKER_CLI_EXPERIMENTAL=enabled

· 通過在配置文件 $HOME/.docker/config.json 中打開特性開關

{
  "experimental": "enabled"
}

配置完成之後,可以使用 Docker Version 查看是否開啟成功。

file

之後可以檢查一下 Docker Buildx 命令是否可用。

file

03 檢查 Linux 內核版本

root@localhost:~# uname -r
5.15.0-72-generic

上面說過 Linux 內核版本至少需要大於等於4.8。

04 檢查 binfmt_misc 文件系統是否掛載

$ ls /proc/sys/fs/binfmt_misc/
register status

05 安裝 QEMU

sudo apt-get install -y qemu-user-static

執行完成之後就安裝好了支持多種架構的 QEMU,可以通過下麵的命令執行檢查 aarch64。

ls -l /usr/bin/qemu-aarch64-static
qemu-aarch64-static --version

file

sudo apt-get install -y binfmt-support
update-binfmts --version

確保 update-binfmts 版本大於等於2.1.7。

使用 Docker Buildx 構建鏡像

● 創建 Buildx Builder

docker buildx create --name mybuilder
docker buildx use mybuilder
docker buildx inspect --bootstrap
docker buildx ls

● 使用 Buildx 構建

docker buildx build --platform linux/arm64 -f Dockerfile.arm --tag=easymanager/matrix:6.1.2-rel-rel . --load

上述命令用於將 Docker 鏡像打包,以便其能夠在 Linux/arm64 架構的伺服器上運行。如果有其他類型的架構,可以修改 --platform 參數,比如 linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64/v8, linux/386, linux/ppc64le, linux/s390x 等等。

總結

國產化信創是國家戰略的關鍵組成部分,對於確保國家網路安全和信息安全具有重要意義。近年來,隨著國家對信創產業的持續重視,這一領域已經取得了顯著進展,信創組件日益豐富。

EasyMR 致力於深耕國產化信創領域,專註於將 EasyMR 打造成最適合國產化信創組件的大數據彈性計算引擎,助力企業構建安全、穩定、高效的大數據解決方案。

通過不斷優化和升級,EasyMR 未來會不斷加快國產化信創的適配進程,更好地滿足國產化信創產業的需求,為國家網路安全和信息安全貢獻力量。

《行業指標體系白皮書》下載地址:https://www.dtstack.com/resources/1057?src=szsm

《數棧產品白皮書》下載地址:https://www.dtstack.com/resources/1004?src=szsm

《數據治理行業實踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm

想瞭解或咨詢更多有關大數據產品、行業解決方案、客戶案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szbky


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文章參考:https://gitee.com/socbis/linux-lvgl lvgl on linux Frame buffer 主機環境: Ubuntu 18.04 lvgl 8.0.1 獲取源碼並運行demo 獲取源碼 需要3樣東西來構建demo : lvgl核心控制項庫: 從此處獲取源碼 ...
  • 大家好,我是 Java陳序員。 今天,給大家分享下在 Linux 環境中如何安裝卸載 MySQL. 關註微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典電腦電子書籍等。 MySQL 安裝 準備一臺 Linux 伺服器 下載 Linux 版 MySQL 安裝包 下載地址 ...
  • GeminiDB PITR執行數據快照業務無感,通常可在5分鐘以內恢復到指定時間點,有效解決傳統備份方案時間長、恢復粒度大等痛點問題。 ...
  • 引言 在數據驅動的世界中,企業正在尋求可靠且高性能的解決方案來管理其不斷增長的數據需求。本系列博客從一個重視數據安全和合規性的 B2C 金融科技客戶的角度來討論雲上雲下混合部署的情況下如何利用亞馬遜雲科技雲原生服務、開源社區產品以及第三方工具構建無伺服器數據倉庫的解耦方法。 本篇博客著重探討 EMR ...
  • Apache DolphinScheduler即將迎來3.3.0版本的發佈,屆時將有一系列重要的更新和改進。在近期的社區5月份用戶線上分享會上,項目PMC 阮文俊為大家介紹了3.3.0版本將帶來的主要更新和改進,併為大家指出瞭如何參與社區的方式。 什麼是DolphinScheduler? Dolph ...
  • 本文分享自華為雲社區《Flink SQL性能優化實踐》 ,作者:超夢。 在大數據處理領域,Apache Flink以其流處理和批處理一體化的能力,成為許多企業的首選。然而,隨著數據量的增長,性能優化變得至關重要。本文將深入淺出地探討Flink SQL的常見性能問題、調優方法、易錯點及調優技巧,並提供 ...
  • 生產環境單表查詢超時,表數據500萬+,這點數據按道理不加不加索引都不應該超時。排查業務數據,發現業務數據每天插入25萬+。初步懷疑併發導致數據處理不及時,進一步排查每分鐘都有300的左右實時數據插入到業務表,鍋應該不在這裡排查數據伺服器,發現CPU占用不高,512G的記憶體占用高達96%。但sql ...
  • 作者 | 郭煒 導讀:最新發佈的《技術成熟度曲線2024》全面評估數據集成技術架構的7個維度,包括技術成熟度、技術難度、業務價值、技術成熟周期、管理協作難度、大模型結合等評估維度,報告篇幅較長,我們將報告分為3篇系列文章,本文為報告第一篇,描述了 「從ETL 到ELT,到 EtLT的趨勢」。接下來系 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...