更高效的数据处理解决方案:基于 MinIO 部署 Apache Doris 存算分离版本实践
引言
现代数据处理在多维度面临严峻挑战,一方面,数据量的持续增长致使传统存储成本居高不下,非结构化数据所占比例日益攀升,进一步加重了存储负担,且数据质量问题推高了存储和清洗成本;另一方面,企业内部往往存在多套系统,数据难以集成,这对数据分析的成本和时效性也提出了更高的要求。
Apache Doris 作为一款具备高性能的实时分析数据库,拥有湖仓一体的能力。当它与 MinIO 这样高性能且 S3 兼容的对象存储系统相结合时,能够构建出一个高效且具备低成本特性的数据分析系统。本文将介绍基于 Apache Doris 和 MinIO 的存算分离部署教程与使用实践。
为什么选择 Apache Doris 和 MinIO
Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称,能够在亚秒级的时间内返回海量数据的查询结果。Doris 具备以下优势:
- 高性能:在海量数据下实现亚秒级查询响应,支持高并发点查询和复杂分析。
- 实时分析:支持实时数据导入和查询,适合需要即时洞察的业务场景。
- 易用性:设计简单,操作和维护成本低。
- 可扩展性:通过 MPP 架构实现水平扩展,处理大规模数据和高并发请求。
- 多场景支持:适用于报表分析、即席查询、用户画像、日志检索等多种场景。
- 强大集成性:可与 MySQL、PostgreSQL、Hive、Flink 等数据源和工具无缝集成。
- 活跃社区:拥有超过 600 名贡献者和全球 5000 多家企业的生产环境应用,得到 TikTok、Baidu 等巨头的验证。
与此同时,Doris 还支持存算一体和存算分离两种部署模式,在存算一体模型下,Doris 会在内部存储数据,而在存算分离模式下,Doris 可以选择第三方存储系统,如 MinIO。
MinIO 是一个开源、分布式对象存储系统,专为高性能和云原生工作负载设计。其主要优势包括:
- 高性能:Minio 提供快速的数据访问,满足实时分析需求。
- 可扩展性:支持水平扩展,能够轻松应对数据量增长。
- 成本效益:作为开源软件,Minio 可在本地部署,避免云存储的高昂费用。
- S3 兼容性:与 Amazon S3 API 完全兼容,易于与现有工具和应用集成。
- 分布式架构:通过擦除码(Erasure Coding)技术,提供高可用性和数据冗余。
- 灵活部署:支持裸金属、容器(如 Kubernetes)或云平台部署,适应多种环境。
这些特性使 Minio 成为 Apache Doris 存算分离架构的理想存储后端。
部署指南
01 规划
在我们进行部署之前,需要进行容量规划,如果你部署的是在生产环节,那么你应该考虑使用更高规格配置的机器,并且将各个组件独立部署。
软件版本准备:
服务器规划:
02 准备工作
- 
  操作系统参数修改 swapoff -a cat >> /etc/sysctl.conf << EOF vm.max_map_count = 2000000 EOF # Take effect immediately sysctl -p vi /etc/security/limits.conf * soft nofile 1000000 * hard nofile 1000000
- 
  安装必要的命令 apt update apt install -y net-tools apt install -y cron apt install -y iputils-ping
03 部署 MinIO
- 
  下载 MinIO:访问MinIO 下载页面,选择适合的版本和操作系统。 wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio
- 
  在每个节点上启动 MinIO 服务器: export MINIO_REGION_NAME=us-east-1 export MINIO_ROOT_USER=minio export MINIO_ROOT_PASSWORD=minioadmin mkdir -p /mnt/disk{1..4}/minio nohup minio server --address :9000 --console-address :9001 http://172.20.1.{2...5}:9000/mnt/disk{1...4}/minio 2>&1 &
- 
  配置 MinIO 客户端: wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod +x mc ./mc alias set myminio http://127.0.0.1:9000 minio minioadmin ./mc mb myminio/doris
注意:如果 MinIO 部署在本地网络且未启用 TLS,需在 endpoint 中显式添加"http://"。
04 部署 Doris Manager
- 
  下载 Doris Manager wget https://enterprise-doris-releases.oss-accelerate.aliyuncs.com/doris-manager/velodb-manager-25.0.0-x64-bin.tar.gz
- 
  解压并启动服务 tar -zxf velodb-manager-25.0.0-x64-bin.tar.gz cd velodb-manager-25.0.0-x64-bin/webserver/bin bash start.sh
- 
  服务启动后,通过浏览器访问 http://:8004 即可进入管理界面并根据指引创建账号 
05 部署 Doris
- 
  下载 Doris wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.0.6.2-bin-x64.tar.gz mv apache-doris-3.0.6.2-bin-x64.tar.gz /opt/downloads/doris
- 
  进入主界面,根据指引创建集群 
- 
  选择指定版本并设置 root 密码 
- 
  填写 MinIO 信息 
- 
  填写节点信息 - 
    分别在每个节点执行以下命令 wget http://172.20.1.2:8004/api/download/deploy.sh -O deploy_agent.sh && chmod +x deploy_agent.sh && ./deploy_agent.sh
- 
    在界面上填写节点 IP 
 
- 
    
- 
  配置 FE 节点 
- 
  配置 BE 节点 
- 
  部署你的集群 
开始查询
01 准备数据
- 
  进入查询页面 
- 
  创建 Doris 表: CREATE DATABASE IF NOT EXISTS `test`; USE `test`; CREATE TABLE `amazon_reviews` ( `review_date` int(11) NULL, `marketplace` varchar(20) NULL, `customer_id` bigint(20) NULL, `review_id` varchar(40) NULL, `product_id` varchar(10) NULL, `product_parent` bigint(20) NULL, `product_title` varchar(500) NULL, `product_category` varchar(50) NULL, `star_rating` smallint(6) NULL, `helpful_votes` int(11) NULL, `total_votes` int(11) NULL, `vine` boolean NULL, `verified_purchase` boolean NULL, `review_headline` varchar(500) NULL, `review_body` string NULL ) ENGINE=OLAP DUPLICATE KEY(`review_date`) COMMENT 'OLAP' DISTRIBUTED BY HASH(`review_date`) BUCKETS 16 PROPERTIES ( "compression" = "ZSTD" );
- 
  下载亚马逊评论数据: wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_2010.snappy.parquet
- 
  导入数据到 Doris: curl --location-trusted -u root:<your password> \ -T amazon_reviews_2010.snappy.parquet \ -H "format:parquet" \ http://127.0.0.1:8030/api/test/amazon_reviews/_stream_load
- 
  登录 MinIO 控制台,查看数据大小 
02 查询
SELECT
    product_id,
    AVG(product_title),
    AVG(star_rating) AS rating,
    COUNT() AS count
FROM
    amazon_reviews
WHERE
    review_body LIKE '%is super awesome%'
GROUP BY
    product_id
ORDER BY
    count DESC,
    rating DESC,
    product_id
LIMIT 5;
总结
在导入相同数据(3 副本配置)方面,相较于存算一体模式 3.98 GB 的存储占用,采用 MinIO 的存算分离模式仅占用 1.3 GB,存储占用是存算一体模式的 1/3 ;与此同时,在数据导入速度方面,采用 MinIO 仅需 15 秒,而存算一体模式需要 61 秒,导入速度快 4 倍。
通过结合 MinIO 和 Apache Doris 的存算分离架构,用户可以充分利用 Minio 的高性能、低成本对象存储和 Doris 的实时分析能力。这种架构不仅提升了系统的可扩展性和灵活性,还显著降低了存储成本,同时确保了业务负载的隔离和稳定性。希望本教程能帮助您快速部署并体验这一高效的数据处理解决方案。
 关注公众号
关注公众号
					低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 
							
								
								    上一篇
								      Bun v1.3 重磅发布:一站式全栈 JS 运行时,前端开发、数据库、Redis 全内置Bun v1.3 重磅发布:一站式全栈 JS 运行时,前端开发、数据库、Redis 全内置 Bun v1.3 堪称迄今为止最大规模的更新 —— 它将 Bun 从 “高性能 JS 运行时” 升级为 “一站式全栈开发解决方案”,不仅原生支持前端开发全流程(热重载、打包构建),还新增了 MySQL 客户端、Redis 客户端等企业级工具,同时大幅提升 Node.js 兼容性。本文将带你全面拆解 Bun v1.3 的核心特性,以及它如何改变全栈开发流程。 一、快速上手:多平台安装命令 首先附上各系统的安装命令,国内开发者可直接复制使用(支持 Windows/macOS/Linux,Docker 也可快速部署): # 1. Linux/macOS 通用(curl) curl -fsSL https://bun.sh/install | bash # 2. Windows(PowerShell) powershell -c "irm bun.sh/install.ps1 | iex" # 3. npm 全局安装(适合已装Node的环境) npm install -g bun # 4. macOS(... 
- 
							
								
								    下一篇
								      OrientDB 3.2.45 发布,多模 NoSQL 数据库OrientDB 是兼具文档数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档 - 图形数据库管理系统。可选无模式、全模式或混合模式。支持许多高级特性,诸如 ACID 事务、快速索引、原生和 SQL 查询功能。可以导入 JSON 格式、导出文档。 OrientDB 3.2.45 现已发布,这是一个相当小的补丁版本。具体更新内容包括: Core 由于 jdk 更新导致失败后更改了静态线程local allocation 更新和删除后更正记录大小 修复历史任务调度问题 Remote 修复网络消息中序列化器的使用,issue#10585 更新说明:https://github.com/orientechnologies/orientdb/releases/tag/3.2.45 
相关文章
文章评论
共有0条评论来说两句吧...

 
			














 
				 
				 
				 
				 
				 
				 
				



 微信收款码
微信收款码 支付宝收款码
支付宝收款码