当前位置: 首页 > news >正文

Linux - Doris

Linux - Doris

环境:CentOS 7.9 / WSL2,Doris 3.1.4,二进制安装,单节点模式


一、前置依赖

1.1 确认 JDK 17

java-versionecho$JAVA_HOME# 确认输出 17.x,且 JAVA_HOME 已配置

1.2 检查 CPU 是否支持 AVX2

cat/proc/cpuinfo|grepavx2|head-1# 有输出说明支持,下载普通版本# 无输出说明不支持,需下载 noavx2 版本

1.3 系统参数调整

# 关闭 swap(BE 要求)swapoff-a# 设置虚拟内存echo"vm.max_map_count=2000000">>/etc/sysctl.confsysctl-p# 设置文件句柄数cat>>/etc/security/limits.conf<<'EOF' * soft nofile 1000000 * hard nofile 1000000 EOF# WSL2 环境 limits.conf 不生效,在 .bashrc 里设置echo"ulimit -n 1000000">>~/.bashrcsource~/.bashrc# 验证ulimit-n# 输出 1000000 表示成功

二、下载并解压

# 下载二进制包(支持 AVX2 用此版本)wgethttps://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.1.4-bin-x64.tar.gz# 解压到安装目录tar-zxvfapache-doris-3.1.4-bin-x64.tar.gz-C/usr/local/mv/usr/local/apache-doris-3.1.4-bin-x64 /usr/local/doris

目录结构:

/usr/local/doris/ ├── fe/ # Frontend 节点(大脑) ├── be/ # Backend 节点(存储+计算) ├── ms/ # Meta Service(存算分离用,单节点忽略) ├── extensions/ # 扩展插件 └── tools/ # 工具

三、配置 FE

vi/usr/local/doris/fe/conf/fe.conf

修改以下配置:

# 元数据存储目录 meta_dir = /usr/local/doris/data/fe/meta # 指定监听IP(单节点用127.0.0.1) priority_networks = 127.0.0.1/32 # 禁用本地免密登录(可选,默认 true 允许免密) skip_localhost_auth_check = false
# 创建元数据目录mkdir-p/usr/local/doris/data/fe/meta

四、配置 BE

vi/usr/local/doris/be/conf/be.conf

修改以下配置:

# 数据存储目录 storage_root_path = /usr/local/doris/data/be/storage # 指定监听IP(和 FE 保持一致) priority_networks = 127.0.0.1/32
# 创建数据目录mkdir-p/usr/local/doris/data/be/storage

五、启动服务

必须先启动 FE,再启动 BE

# 启动 FE/usr/local/doris/fe/bin/start_fe.sh--daemonsleep10# 启动 BE/usr/local/doris/be/bin/start_be.sh--daemonsleep10# 验证进程jps# 看到 DorisFE 和 DorisBE 表示成功

六、注册 BE 到 FE

# 连接 FEmysql-h127.0.0.1-P9030-uroot# 注册 BE(只需执行一次)ALTER SYSTEM ADD BACKEND"127.0.0.1:9050";# 查看 BE 状态,Alive: true 表示成功SHOW BACKENDS\G

七、配置 Service 管理脚本

cat>/etc/init.d/doris<<'EOF' #!/bin/bash # chkconfig: 2345 90 10 # description: Apache Doris DORIS_HOME=/usr/local/doris JAVA_HOME=/usr/local/jdk/jdk export JAVA_HOME export PATH=$JAVA_HOME/bin:$DORIS_HOME/fe/bin:$DORIS_HOME/be/bin:$PATH case "$1" in start) echo "Starting Doris FE..." $DORIS_HOME/fe/bin/start_fe.sh --daemon sleep 5 fe_pid=$(jps | grep DorisFE | awk '{print $1}') if [ -n "$fe_pid" ]; then echo "Doris FE started, PID: $fe_pid" else echo "Doris FE start failed, check logs" fi echo "Starting Doris BE..." $DORIS_HOME/be/bin/start_be.sh --daemon sleep 5 be_pid=$(jps | grep DorisBE | awk '{print $1}') if [ -n "$be_pid" ]; then echo "Doris BE started, PID: $be_pid" else echo "Doris BE start failed, check logs" fi ;; stop) echo "Stopping Doris BE..." $DORIS_HOME/be/bin/stop_be.sh sleep 3 echo "Doris BE stopped" echo "Stopping Doris FE..." $DORIS_HOME/fe/bin/stop_fe.sh sleep 3 echo "Doris FE stopped" ;; restart) $0 stop sleep 3 $0 start ;; status) fe_pid=$(jps | grep DorisFE | awk '{print $1}') be_pid=$(jps | grep DorisBE | awk '{print $1}') if [ -n "$fe_pid" ]; then echo "Doris FE is running, PID: $fe_pid" else echo "Doris FE is not running" fi if [ -n "$be_pid" ]; then echo "Doris BE is running, PID: $be_pid" else echo "Doris BE is not running" fi ;; *) echo "Usage: service doris {start|stop|restart|status}" exit 1 ;; esac EOFchmod+x /etc/init.d/dorischkconfig--adddoris

常用命令:

servicedoris startservicedoris stopservicedoris restartservicedoris status

八、用户与密码管理

# root 连接(本地127.0.0.1默认免密)mysql-h127.0.0.1-P9030-uroot# 设置 root 密码SET PASSWORD FOR'root'@'%'=PASSWORD('your_password');# 创建业务用户(推荐,用于应用连接)CREATEUSER'doris_user'@'%'IDENTIFIED BY'your_password';GRANT ALL ON *.* TO'doris_user'@'%';

本地127.0.0.1默认免密登录(可通过skip_localhost_auth_check = false关闭)
内网 IP 连接必须输入密码,生产环境建议使用业务用户而非 root


九、基本使用

-- 查看版本SELECTVERSION();-- 创建数据库CREATEDATABASEmy_db;USEmy_db;-- 创建表(示例)CREATETABLEorder_create(idBIGINTNOTNULL,company_idVARCHAR(32),order_idVARCHAR(32),order_timeBIGINT,insert_timeDATETIMEDEFAULTCURRENT_TIMESTAMP)UNIQUEKEY(id,company_id,order_id)PARTITIONBYRANGE(order_time)(PARTITIONp202401VALUESLESS THAN("1706745600"),PARTITIONp202402VALUESLESS THAN("1709251200"))DISTRIBUTEDBYHASH(order_id)BUCKETS16PROPERTIES("replication_num"="1");-- 批量插入INSERTINTOorder_createVALUES(1,'company001','ORDER001',1704067200,NOW()),(2,'company001','ORDER002',1704067200,NOW());-- 查询SELECT*FROMorder_create;

十、端口说明

FE 端口:

端口用途是否对外
9030MySQL 协议,客户端连接✅ 必须
8030HTTP,WebUI / Stream Load✅ 按需
9020FE 与 BE 内部 RPC❌ 内部
9010FE 节点选举❌ 内部

BE 端口:

端口用途是否对外
9050心跳端口,注册 BE 时用❌ 内部
9060查询执行❌ 内部
8040BE HTTP / Stream Load 直写✅ 按需
8060BE RPC❌ 内部

对外只需开放9030,使用 Stream Load 时额外开放8030


十一、Kafka → Doris Routine Load

Doris 原生支持消费 Kafka JSON 数据直接入库:

CREATEROUTINELOADdb.load_testONtest PROPERTIES("format"="json","jsonpaths"="[\"$.id\", \"$.name\"]","desired_concurrent_number"="1","strict_mode"="false","max_error_number"="2147483647","max_filter_ratio"="1.0","max_batch_interval"="30")FROMKAFKA("kafka_broker_list"="127.0.0.1:9092","kafka_topic"="test_topic","property.group.id"="doris_test","property.kafka_default_offsets"="OFFSET_END");-- 查看任务状态showroutineloadforload_test;-- 暂停 / 恢复PAUSEROUTINELOADFORload_test;RESUMEROUTINELOADFORload_test;-- 删除stoproutineloadforload_test;-- 查询所有的任务列表showallroutineload;

十二、注意事项

  • FE 和 BE 必须先启 FE 再启 BE,停止顺序相反
  • BE 注册到 FE 只需执行一次,重启不需要重新注册
  • 单节点replication_num必须设为1
  • Doris 写入必须批量提交,避免单条频繁写入产生小文件
  • WSL2 环境limits.conf不持久,需在.bashrc中设置ulimit
  • stat table does not exist日志为正常现象,BE 注册后自动消失
http://www.jsqmd.com/news/944086/

相关文章:

  • 别急着重装系统!手把手教你安全模式禁用NVIDIA驱动,搞定VIDEO_TDR_FAILURE蓝屏
  • 500张真实火情图像数据集,含火焰与烟雾双类别YOLO+VOC标注
  • 2026年 东莞视觉螺丝机源头工厂推荐榜:高精度定位与智能锁付技术实力之选! - 品牌企业推荐师(官方)
  • 苏州本地连锁防水修缮品牌有哪些?2026实力服务商权威盘点 - 苏易修缮
  • 2026年福州出国留学中介家长全程了解进度哪家好:五家优选 - 科技焦点
  • 当LangChain遇上Adobe Experience Manager:跨栈AI内容工作流搭建(仅限首批200家客户验证版)
  • 【Robotics】半小时入门具身智能之Win11下IsaacSim环境搭建
  • 【他山之石】《活出最乐观的自己》导读
  • 2026年 CCD螺丝机厂家推荐排行榜:多轴自动锁螺丝机首选,高精度与稳定效率的全能之选 - 品牌企业推荐师(官方)
  • AI动态简报之算力基建篇(2026.06.03)
  • Win11任务栏改造心得:我是如何用一杯咖啡钱的StartAllBack,既保留新开始菜单又找回经典任务栏的
  • 孤舟笔记 分布式与微服务篇九 什么是幂等性?为什么面试总问它?解决思路一次讲透
  • 智能任务调度系统设计白皮书(2024企业级AI Ops标准草案首次公开)
  • 山西省中级经济师工商管理/人力资源管理:适配人群、岗位匹配与备考全攻略 - 众智商学院课程中心
  • STM32F103C8T6正交编码器角度采集工程:AB相计数+Z相归零,支持360°整圈映射与多线数适配
  • 2026海南高新技术企业认定代办机构排名|靠谱高企注册流程代办公司推荐 - GrowthUME
  • 微积分(十二)——多元微积分:高维空间中的变化
  • 游戏AI工具链整合失败率高达68%?2024Q2行业审计报告揭示:缺失这4个契约式接口定义是主因
  • 如何用LeagueAkari高效管理英雄联盟游戏体验:免费开源工具箱完全指南
  • Arduino与DS18B20温度传感器实战:从单总线协议到多点监测
  • 小白也能学会!我的AI大模型工程师独家学习路线,收藏起来直接抄作业!
  • XMly-Downloader-Qt5开源工具:跨平台音频下载方案与Qt5界面优化技巧
  • 【ESP32-S3 从入门到精通-06】2026 最新 Wi-Fi 网络开发与配网技术全实战(Station/AP/TCP/UDP/SmartConfig)
  • 圣擎航空深耕非洲航线机票服务助力企业高效通达非洲核心城市 - 土星买买买
  • 安庆装修公司哪家靠谱?2026专业推荐让你放心选择 - 企业品牌
  • mg3680,mg3650,ts3440,g3800,ts3800,ts9020,ts8180报错5B00,P07,E08,5b02,1704,1700,5b04佳能V6.200,亲测有用。
  • 长春到天津物流专线公司有保险吗?真实理赔数据告诉你答案
  • Nintendo Switch Cleaner and Builder:Switch游戏文件管理的专业一站式解决方案
  • 如何5分钟快速掌握AsrTools:智能语音转文字的终极指南
  • Ai2Psd终极指南:如何实现Illustrator到Photoshop的无损矢量图层转换