MENU

Doris2.1.7单机部署-dockercompose部署!秒了!

• 2025 年 03 月 21 日 • 阅读: 201 • 躺过的坑,经经验验

直接上docker-compose.yml!!!

services:
  fe:
    image: apache/doris:fe-ubuntu-2.1.7
    container_name: doris-fe
    hostname: fe
    environment:
      - FE_SERVERS=fe1:172.30.0.2:9010
      - MASTER_FE_IP=172.30.0.2
      - FE_ID=1
    ports:
      - "8030:8030"   # FE HTTP端口
      - "9020:9020"   # FE BRPC端口
      - "9030:9030"   # MySQL协议端口
      - "9010:9010"   # FE thrift端口
    volumes:
      - ./fe-data:/opt/apache-doris/fe/doris-meta  # 元数据持久化
      - ./fe-log:/opt/apache-doris/fe/log          # 日志持久化
    networks:
      doris-net:
        ipv4_address: 172.30.0.2
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8030/api/health"]
      interval: 30s
      timeout: 10s
      retries: 5

  be:
    image: apache/doris:be-ubuntu-2.1.7
    container_name: doris-be
    hostname: be
    environment:
      - FE_SERVERS=fe1:172.30.0.2:9010
      - MASTER_FE_IP=172.30.0.2
      - BE_ADDR=172.30.0.3:9050
      - BE_HEARTBEAT_PORT=9050
      - CURRENT_BE_IP=172.30.0.3
      - CURRENT_BE_PORT=9050
    ports:
      - "8040:8040"   # 心跳服务端口
      - "9050:9050"   # BE thrift端口
      - "9060:9060"   # BE BRPC端口
      - "8060:8060"   # BE HTTP端口
    volumes:
      - ./be-data:/opt/apache-doris/be/storage    # 数据存储持久化
      - ./be-log:/opt/apache-doris/be/log         # 日志持久化
    networks:
      doris-net:
        ipv4_address: 172.30.0.3
    depends_on:
      fe:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8060/api/health"]
      interval: 30s
      timeout: 10s
      retries: 5

networks:
  doris-net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.30.0.0/24

报错

doris-be | Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'.
解决办法:

# 在宿主机(物理机/虚拟机)执行
sudo sysctl -w vm.max_map_count=2000000

doris-be | Please disable swap memory before installation.
解决办法:

# 在宿主机(物理机/虚拟机)执行
sudo swapoff -a

如果你服务器内存不够大!那!放弃吧,骚年!

Apache Doris(原百度 Palo)的 2.x3.x 是两条不同的版本线,分别面向不同的用户需求和场景。以下是它们的核心差异和定位:


一、版本线定位

版本线2.x(如 2.1.7)3.x(如 3.0.0)
目标用户稳定生产环境,保守升级需求尝鲜新功能,高性能、云原生场景
更新策略长期维护(Bug 修复、安全补丁)主版本迭代(新功能、架构升级)
兼容性向后兼容(无破坏性变更)可能包含不兼容改动(需评估升级成本)

二、核心功能差异

1. 性能优化

  • 2.x
    侧重稳定性优化,例如查询计划器改进、小范围资源隔离。
  • 3.x

    • 向量化引擎增强:全面向量化计算,复杂查询性能提升 2-5 倍。
    • Pipeline 执行模型:支持异步流水线执行,降低资源争抢。
    • 云原生资源调度:深度集成 Kubernetes,动态扩缩容。

2. 功能特性

  • 2.x
    成熟功能:物化视图、动态分区、多租户资源组。
  • 3.x

    • 湖仓一体:直接查询 Hudi/Iceberg 数据(无需导入)。
    • JSON 类型增强:支持 JSONB 存储格式和高效检索。
    • Light Schema Change:秒级表结构变更(无需重导数据)。
    • 多 Catalog 联邦查询:跨 Doris、MySQL、Elasticsearch 联合分析。

3. 存储与事务

  • 2.x
    基于 Segment V2 存储格式,支持行级更新(需 Merge-on-Read)。
  • 3.x

    • Segment V3 存储:列存压缩率提升 30%,支持 Z-Order 索引。
    • 事务优化:悲观锁机制减少并发冲突,写入吞吐提升。

4. 运维与生态

  • 2.x
    运维工具成熟,兼容 Hadoop/Spark 生态。
  • 3.x

    • 自动化运维:智能索引推荐、慢查询自诊断。
    • Arrow Flight 协议:高速数据传输(替代 JDBC/ODBC)。
    • 多语言 UDF:支持 Java/Python UDF 扩展。

三、是否同时更新?

  • ,两条版本线会并行更新,但侧重点不同:

    • 2.1.7:属于 2.1.x 维护分支,仅修复关键问题,无新功能。
    • 3.0:属于 3.x 主版本线,持续迭代新特性和架构升级。

四、如何选择?

场景推荐版本
生产环境求稳2.1.x
云原生部署、湖仓分析3.x
高性能实时报表3.x
兼容旧生态(Hadoop)2.1.x

五、升级建议

  1. 测试环境验证:3.x 新功能需充分测试(如向量化引擎对复杂 SQL 的覆盖性)。
  2. 回滚预案:3.x 的存储格式变更可能导致降级困难。
  3. 关注社区动态:3.x 仍在快速迭代,部分功能可能不稳定。

如需具体场景的版本对比,建议参考 Apache Doris 官方升级文档