Linux - Doris

发布时间:2026/6/3 19:35:37

Linux - Doris Linux - Doris环境CentOS 7.9 / WSL2Doris 3.1.4二进制安装单节点模式一、前置依赖1.1 确认 JDK 17java-versionecho$JAVA_HOME# 确认输出 17.x且 JAVA_HOME 已配置1.2 检查 CPU 是否支持 AVX2cat/proc/cpuinfo|grepavx2|head-1# 有输出说明支持下载普通版本# 无输出说明不支持需下载 noavx2 版本1.3 系统参数调整# 关闭 swapBE 要求swapoff-a# 设置虚拟内存echovm.max_map_count2000000/etc/sysctl.confsysctl-p# 设置文件句柄数cat/etc/security/limits.confEOF * soft nofile 1000000 * hard nofile 1000000 EOF# WSL2 环境 limits.conf 不生效在 .bashrc 里设置echoulimit -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/ # 工具三、配置 FEvi/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四、配置 BEvi/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 BACKEND127.0.0.1:9050;# 查看 BE 状态Alive: true 表示成功SHOW BACKENDS\G七、配置 Service 管理脚本cat/etc/init.d/dorisEOF #!/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 EOFchmodx /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 FORroot%PASSWORD(your_password);# 创建业务用户推荐用于应用连接CREATEUSERdoris_user%IDENTIFIED BYyour_password;GRANT ALL ON *.* TOdoris_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_num1);-- 批量插入INSERTINTOorder_createVALUES(1,company001,ORDER001,1704067200,NOW()),(2,company001,ORDER002,1704067200,NOW());-- 查询SELECT*FROMorder_create;十、端口说明FE 端口端口用途是否对外9030MySQL 协议客户端连接✅ 必须8030HTTPWebUI / Stream Load✅ 按需9020FE 与 BE 内部 RPC❌ 内部9010FE 节点选举❌ 内部BE 端口端口用途是否对外9050心跳端口注册 BE 时用❌ 内部9060查询执行❌ 内部8040BE HTTP / Stream Load 直写✅ 按需8060BE RPC❌ 内部对外只需开放9030使用 Stream Load 时额外开放8030十一、Kafka → Doris Routine LoadDoris 原生支持消费 Kafka JSON 数据直接入库CREATEROUTINELOADdb.load_testONtest PROPERTIES(formatjson,jsonpaths[\$.id\, \$.name\],desired_concurrent_number1,strict_modefalse,max_error_number2147483647,max_filter_ratio1.0,max_batch_interval30)FROMKAFKA(kafka_broker_list127.0.0.1:9092,kafka_topictest_topic,property.group.iddoris_test,property.kafka_default_offsetsOFFSET_END);-- 查看任务状态showroutineloadforload_test;-- 暂停 / 恢复PAUSEROUTINELOADFORload_test;RESUMEROUTINELOADFORload_test;-- 删除stoproutineloadforload_test;-- 查询所有的任务列表showallroutineload;十二、注意事项FE 和 BE 必须先启 FE 再启 BE停止顺序相反BE 注册到 FE 只需执行一次重启不需要重新注册单节点replication_num必须设为1Doris 写入必须批量提交避免单条频繁写入产生小文件WSL2 环境limits.conf不持久需在.bashrc中设置ulimitstat table does not exist日志为正常现象BE 注册后自动消失

相关新闻