hololive滚滚山免安装绿色中文版
995M · 2025-10-31
现代数据处理在多维度面临严峻挑战,一方面,数据量的持续增长致使传统存储成本居高不下,非结构化数据所占比例日益攀升,进一步加重了存储负担,且数据质量问题推高了存储和清洗成本;另一方面,企业内部往往存在多套系统,数据难以集成,这对数据分析的成本和时效性也提出了更高的要求。
Apache Doris 作为一款具备高性能的实时分析数据库,拥有湖仓一体的能力。当它与 MinIO 这样高性能且 S3 兼容的对象存储系统相结合时,能够构建出一个高效且具备低成本特性的数据分析系统。本文将介绍基于 Apache Doris 和 MinIO 的存算分离部署教程与使用实践。
Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称,能够在亚秒级的时间内返回海量数据的查询结果。Doris 具备以下优势:
与此同时,Doris 还支持存算一体和存算分离两种部署模式,在存算一体模型下,Doris 会在内部存储数据,而在存算分离模式下,Doris 可以选择第三方存储系统,如 MinIO。
MinIO 是一个开源、分布式对象存储系统,专为高性能和云原生工作负载设计。其主要优势包括:
这些特性使 Minio 成为 Apache Doris 存算分离架构的理想存储后端。
在我们进行部署之前,需要进行容量规划,如果你部署的是在生产环节,那么你应该考虑使用更高规格配置的机器,并且将各个组件独立部署。
软件版本准备:
服务器规划:
操作系统参数修改
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
下载 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
下载 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 即可进入管理界面并根据指引创建账号
下载 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
配置 FE 节点
配置 BE 节点
部署你的集群
进入查询页面
创建 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 控制台,查看数据大小
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 的实时分析能力。这种架构不仅提升了系统的可扩展性和灵活性,还显著降低了存储成本,同时确保了业务负载的隔离和稳定性。希望本教程能帮助您快速部署并体验这一高效的数据处理解决方案。
 
                     
                            995M · 2025-10-31
 
                            90.9M · 2025-10-31
 
                            478M · 2025-10-31
