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 查看是否开启成功。

之后可以检查一下 Docker Buildx 命令是否可用。

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

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
EasyMR 基于国产化信创的适配实践技术详解的更多相关文章
- 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践
本文来自腾讯前端开发工程师“ wendygogogo”的技术分享,作者自评:“在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦.” 1.GIF格式的历史 GIF ( Gr ...
- IPv6技术详解:基本概念、应用现状、技术实践(下篇)
本文来自微信技术架构部的原创技术分享. 1.前言 在上篇<IPv6技术详解:基本概念.应用现状.技术实践(上篇)>,我们讲解了IPV6的基本概念. 本篇将继续从以下方面展开对IPV6的讲解 ...
- IPv6技术详解:基本概念、应用现状、技术实践(上篇)
本文来自微信技术架构部的原创技术分享. 1.前言 普及IPV6喊了多少年了,连苹果的APP上架App Store也早已强制IPV6的支持,然并卵,因为历史遗留问题,即使在IPV4地址如果饥荒的情况下, ...
- 手游录屏直播技术详解 | 直播 SDK 性能优化实践
在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...
- Comet技术详解:基于HTTP长连接的Web端实时通信技术
前言 一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Ser ...
- 基于python中staticmethod和classmethod的区别(详解)
例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 class A(object): def foo(self,x): print "executing foo ...
- 基于Python对象引用、可变性和垃圾回收详解
基于Python对象引用.可变性和垃圾回收详解 下面小编就为大家带来一篇基于Python对象引用.可变性和垃圾回收详解.小编觉得挺不错的,现在就分享给大家,也给大家做个参考. 变量不是盒子 在示例所示 ...
- iOS开发——屏幕适配篇&Masonry详解
Masonry详解 前言 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-ip ...
- 基于Docker搭建Maven私服Nexus,Nexus详解
备注:首先在linux环境安装Java环境和Docker,私服需要的服务器性能和硬盘存储要高一点,内存不足可能到时启动失败,这里以4核8GLinux服务器做演示 一:基于Docker安装nexus3 ...
- comet基于HTTP长连接技术(java即时通信,推送技术详解)
服务器推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息,服务器发送一批数据,浏览器显示消息,同时保证与服务器的连接,当服务器需要再一次的发送数据,浏览器显示数据并保持连接. comet基 ...
随机推荐
- breach1靶机渗透学习
靶机下载 https://www.vulnhub.com/ 找Breach-1.0,不过这个是老靶机了,可以看网上其他博客附带有靶机下载的网盘链接,靶机官网访问很慢而且网站好像出问题了排版很乱,不打也 ...
- Proxmox ve(Pve) 安装windows server
1.安装proxmox ve点击直达 官网地址 下载下来如果下载速度太慢 可以去安装个IDM https://www.52pojie.cn/thread-1013874-1-1.html 然后需要制作 ...
- centos7 docker卸载老版本并升级到最新稳定版本
一.前言 docker的版本分为社区版docker-ce和企业版dokcer-ee社,区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施.容器.插 ...
- 入门Dify平台:工作流节点分析
要让智能体在实际应用中表现出色,掌握工作流的使用至关重要.今天,我们将深入探讨Dify平台中的各个节点的功能,了解它们的使用方法以及常见的应用场景.通过对这些节点的全面了解,将能够高效地设计和优化智能 ...
- ASP.NET Core 响应压缩中间件
使用及对比 在 Startup.cs 中添加服务并使用即可,主代码如下: // Startup.cs public void ConfigureServices(IServiceCollection ...
- 2. RabbitMQ 的详细安装步骤(两种方式,第一种:yum 安装;第二种:docker 容器安装)
2. RabbitMQ 的详细安装步骤(两种方式,第一种:yum 安装:第二种:docker 容器安装) @ 目录 2. RabbitMQ 的详细安装步骤(两种方式,第一种:yum 安装:第二种:do ...
- KGDB调试Linux内核与模块
前言 内核 5.10 版本 openEuler 使用 yum install 下载了源码,并且通过两个 VMware 虚拟机进行调试 ubuntu 直接使用 git 拉取了https://kernel ...
- JAVA基础之多线程四期--线程状态
一.线程的状态 二.线程生命周期分析图 三. 阻塞状态:具有cpu执行权,更待cpu空闲 休眠状态:不具有cpu执行权,cpu空闲时,也不能使用执行权
- 遍历表单数据,检查其中任意一项的方法(Get Matching Xpath Count指令的用法)
如上图,每次新增数据均显示在最上面,且这个表格没有自定义查询的功能. 这给校验添加数据是否成功增加了难度(常规方式是检查第一行数据) 本次案例的逻辑是 使用Get Matching Xpath Cou ...
- 康谋分享 | AD/ADAS的性能概览:在AD/ADAS的开发与验证中“大海捞针”!
如果您希望从数百万小时的驾驶数据中查找特定的相关驾驶事件和未遂事故,以确保您的所需功能正确运行,最好的方法就是创建一个系统性能的概览分析,实现在数据日志中快速检索关注点.为此,康谋在本文将为您详细介绍 ...