EasyMR 基于国产化信创的适配实践技术详解

国产化信创,即采用国产信息技术产品和服务,构建自主可控的信息技术体系。近年来,随着国家对网络安全和信息安全的重视程度不断提高,国产化信创已经成为国家战略的重要组成部分,并呈现出以下大趋势:

● 政策驱动,加速发展

国家出台了一系列政策法规,大力支持国产化信创产业发展。例如,《“十四五”数字经济发展规划》提出,到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=szcsdn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/15685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】C语言-学生选修课程系统(源码)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

分享几张漂亮的linux kde主题

分享几张漂亮的linux kde主题:在系统设置的全局主题内下载。

开源大模型与闭源大模型

概述 开源大模型和闭源大模型是两种常见的大模型类型,它们在以下方面存在差异: 开放性: 开源大模型:代码和模型结构是公开可用的,任何人都可以访问、修改和使用。闭源大模型:模型的代码和结构是私有的&…

求斐波那契数列第n项的值

本期介绍🍖 主要介绍:什么是斐波那契数列,递归实现求斐波那契数列第n项值,递归法为什么不适合求斐波那契数,用迭代法实现求斐波那契数列的值👀。 文章目录 1. 斐波那契数列是什么?2. 题目2. 递归…

iOS17闪退问题 *** Assertion failure in void _UIGraphicsBeginImageContextWithOptions(CGSize, BOOL, CGFloa

ios升级17以后运行闪退。报错日志为*** Assertion failure in void _UIGraphicsBeginImageContextWithOptions(CGSize, BOOL, CGFloat, BOOL)(), UIGraphics.m:410 根据相关断点跟踪,具体报错位置 查看相关api发现iOS17api已经被替代。 替代方式为将UIGraphicsBegin…

9.Docker网络

文章目录 1、Docker网络简介2、常用基本命令3、网络模式对比举例3.1、bridge模式3.2、host模式3.3、none模式3.4、container模式3.5、自定义网络 1、Docker网络简介 作用: 容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接进行网络通信而不受到影…

# 文件或目录损坏且无法读取 的解决方案

文件或目录损坏且无法读取 的解决方案 一、问题描述: windows 系统下,当对某一个文件或文件夹操作时,出现【文件或目录损坏且无法读取】,这时不管对其进行修改、删除、更改属性等操作,都不能正常进行,在 …

从0开始学统计-t检验

1.什么是t检验? t检验是一种用于比较两个样本均值之间差异是否显著的统计方法。它通常用于以下几种情况: (1)单样本 t 检验:用于检验一个样本的平均值是否与一个已知的总体平均值(或者一个假设的总体平均…

11.jenkins调整上线的脚本实现tag方式上线

jenkins调整上线的脚本实现tag方式上线 多次打标签重新提交到gitlab远程仓库-基于multi-line string parameter 修改脚本html_deploy_tar.sh #!/usr/bin/bashDate$(date %F-%H-%M) web_server"192.168.111.22 192.168.111.23" Name${Date}-${git_version} code_t…

网络模型-路由策略

一、路由策略 路由策略(Routing Policy)作用于路由,主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。目的:设备在发布、接收和引入路由信息时,根据实际组网需要实施一些策略&#xff0c…

笔记89:LeetCode_135_分发糖果

前言: 注:代码随想录中没有很清楚的提起想出方法的思路,只是给出了解决这个问题的大致思路和代码;下面我将介绍一下我的思考过程,并贴出实现代码; a a a a 思考过程: 思路1:为了…

【实际项目精选源码】ehr人力资源管理系统实现案例(java,vue)

一、项目介绍 一款全源码可二开,可基于云部署、私有部署的企业级数字化人力资源管理系统,涵盖了招聘、人事、考勤、绩效、社保、酬薪六大模块,解决了从人事招聘到酬薪计算的全周期人力资源管理,符合当下大中小型企业组织架构管理运…

docker-compose Install homer

homer前言 一个非常简单的静态主页,为您的服务器保持您的服务在手,从一个简单的yaml配置文件。 前提要求 安装 docker docker-compose 参考创建一键安装homer 脚本 homer安装位置/homerhomer 脚本位置/homer/assetshomer logo 图标/home/assets/iconshomer 端口80homer 颜色…

运维 之 大文件分片刻录光盘

需求 因有些企业中涉及设备只能通过光盘介质方式拷贝文件,然而采购的单张光盘又不能确保存放下一些较大的文件,所以只能通过分片的方式逐个光盘存储。 Windows处理 1、安装压缩软件(自行选择,这里使用WinRAR)、Ultr…

HTML静态网页成品作业(HTML+CSS)——企业酒店官网网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

FuTalk设计周刊-Vol.053

#AI漫谈 热点捕手 1.Midjourney推出新功能Room 用户可在聊天室中一起创作图像 Midjourney最近推出了一个有趣的新功能——Room,为用户提供了一个协作和社交平台,用户可以一起创建和分享图像,并参与实时聊天。Room促进了用户之间的互动和合作…

C语言 | Leetcode C语言题解之第111题二叉树的最小深度

题目: 题解: typedef struct {int val;struct TreeNode *node;struct queNode *next; } queNode;void init(queNode **p, int val, struct TreeNode *node) {(*p) (queNode *)malloc(sizeof(queNode));(*p)->val val;(*p)->node node;(*p)->…

CentOS 7安装alertmanager

说明:本文介绍如何在CentOS 7安装alertmanager; Step1:下载安装包 访问Github仓库,下载对应版本的alertmanager安装包 https://github.com/prometheus/alertmanager/releases 如何查看自己系统的信息,可参考下图中的…

AI播客下载:The Logan Bartlett Show Podcast(AI创业投资主题)

Logan Bartlett Show Podcast是一个播客,主持人Logan Bartlett与科技界的领导者以及投资者进行对话,讨论他们在运营或投资企业中学到的经验教训,主要集中在科技创投领域。 Logan Bartlett 是 Redpoint Ventures 的投资人,并且在该…

【DZ模板】克米设计APP手机版本地化+完美使用

模版介绍 【DZ模板】价值288克米设计APP手机版DZ模板 数据本地化完美使用 腾讯官方出品discuz论坛DIY的后台设置,功能齐全,论坛功能不亚于葫芦侠,自定义马甲,自定义认证,自定义广告,完全可以打造出自己想…