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

Doris初始化脚本全攻略

我来为您提供 Doris 的初始化脚本准备指南。Doris 提供了多种初始化方式,以下是详细的脚本和配置说明。

1. 环境准备脚本

首先,创建一个环境检查脚本 check_environment.sh

#!/bin/bash# Doris 环境检查脚本
echo "=== Doris 环境检查 ==="# 检查系统版本
echo "1. 检查系统版本..."
cat /etc/os-release# 检查 Java 版本
echo "2. 检查 Java 版本..."
java -version 2>/dev/null || echo "Java 未安装"# 检查内存
echo "3. 检查内存..."
free -h# 检查磁盘空间
echo "4. 检查磁盘空间..."
df -h# 检查网络
echo "5. 检查网络..."
ping -c 3 www.baidu.com >/dev/null 2>&1 && echo "网络连接正常" || echo "网络连接异常"echo "=== 环境检查完成 ==="

2. FE(Frontend)初始化脚本

创建 FE 初始化脚本 init_fe.sh

#!/bin/bash# Doris FE 初始化脚本
DORIS_HOME=/opt/doris
FE_HOME=$DORIS_HOME/feecho "=== 开始初始化 Doris FE ==="# 创建目录
mkdir -p $FE_HOME/logs
mkdir -p $FE_HOME/doris-meta# 生成 FE 配置文件
cat > $FE_HOME/conf/fe.conf << EOF
# 元数据目录
meta_dir = ${FE_HOME}/doris-meta# 网络配置
priority_networks = 192.168.1.0/24
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010# JVM 配置
JAVA_OPTS = "-Xmx4096m -Xms4096m -XX:+UseG1GC"# 其他配置
sys_log_level = INFO
audit_log_modules = slow_query, query
qe_slow_log_ms = 5000
EOFecho "FE 配置文件已生成"# 启动 FE
echo "启动 FE 服务..."
cd $FE_HOME
./bin/start_fe.sh --daemon# 检查启动状态
sleep 10
curl http://localhost:8030/api/bootstrap || echo "FE 启动检查失败"echo "=== Doris FE 初始化完成 ==="

3. BE(Backend)初始化脚本

创建 BE 初始化脚本 init_be.sh

#!/bin/bash# Doris BE 初始化脚本
DORIS_HOME=/opt/doris
BE_HOME=$DORIS_HOME/beecho "=== 开始初始化 Doris BE ==="# 创建目录
mkdir -p $BE_HOME/logs
mkdir -p $BE_HOME/storage/data
mkdir -p $BE_HOME/storage/ssd# 生成 BE 配置文件
cat > $BE_HOME/conf/be.conf << EOF
# 存储目录
storage_root_path = ${BE_HOME}/storage/data,medium:hdd;${BE_HOME}/storage/ssd,medium:ssd# 网络配置
priority_networks = 192.168.1.0/24
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060# 资源限制
mem_limit = 80%
storage_page_cache_limit = 60%# 其他配置
sys_log_level = INFO
enable_metric_calculator = true
EOFecho "BE 配置文件已生成"# 启动 BE
echo "启动 BE 服务..."
cd $BE_HOME
./bin/start_be.sh --daemon# 检查启动状态
sleep 10
curl http://localhost:8040/api/health || echo "BE 启动检查失败"echo "=== Doris BE 初始化完成 ==="

4. 集群部署脚本

创建集群部署脚本 deploy_cluster.sh

#!/bin/bash# Doris 集群部署脚本
FE_MASTER="192.168.1.100"  # 主 FE 节点
FE_NODES=("192.168.1.100" "192.168.1.101" "192.168.1.102")  # FE 节点列表
BE_NODES=("192.168.1.110" "192.168.1.111" "192.168.1.112")  # BE 节点列表
DORIS_USER="doris"
DORIS_PASSWORD="doris123"echo "=== 开始部署 Doris 集群 ==="# 等待 FE 主节点启动
echo "等待 FE 主节点启动..."
sleep 30# 添加 FE  follower 节点
for fe_node in "${FE_NODES[@]:1}"; doecho "添加 FE 节点: $fe_node"mysql -h $FE_MASTER -P 9030 -uroot -e "ALTER SYSTEM ADD FOLLOWER \"$fe_node:9010\";"
done# 添加 BE 节点
for be_node in "${BE_NODES[@]}"; doecho "添加 BE 节点: $be_node"mysql -h $FE_MASTER -P 9030 -uroot -e "ALTER SYSTEM ADD BACKEND \"$be_node:9050\";"
done# 创建管理员用户
echo "创建管理员用户..."
mysql -h $FE_MASTER -P 9030 -uroot -e "CREATE USER '$DORIS_USER' IDENTIFIED BY '$DORIS_PASSWORD';"
mysql -h $FE_MASTER -P 9030 -uroot -e "GRANT ADMIN_PRIV ON *.* TO '$DORIS_USER';"# 检查集群状态
echo "=== 集群状态检查 ==="
mysql -h $FE_MASTER -P 9030 -uroot -e "SHOW PROC '/frontends';"
mysql -h $FE_MASTER -P 9030 -uroot -e "SHOW PROC '/backends';"echo "=== Doris 集群部署完成 ==="

5. 数据库初始化脚本

创建数据库和表的初始化脚本 init_database.sql

-- Doris 数据库初始化脚本-- 创建数据库
CREATE DATABASE IF NOT EXISTS example_db;USE example_db;-- 创建用户表
CREATE TABLE IF NOT EXISTS users (user_id BIGINT,username VARCHAR(50),email VARCHAR(100),age INT,city VARCHAR(50),create_time DATETIME,update_time DATETIME
)
DUPLICATE KEY(user_id, username)
DISTRIBUTED BY HASH(user_id) BUCKETS 10
PROPERTIES ("replication_num" = "3"
);-- 创建订单表
CREATE TABLE IF NOT EXISTS orders (order_id BIGINT,user_id BIGINT,amount DECIMAL(10,2),status VARCHAR(20),order_date DATE,create_time DATETIME
)
DUPLICATE KEY(order_id, user_id)
PARTITION BY RANGE(order_date) (PARTITION p202301 VALUES [('2023-01-01'), ('2023-02-01')),PARTITION p202302 VALUES [('2023-02-01'), ('2023-03-01')),PARTITION p202303 VALUES [('2023-03-01'), ('2023-04-01'))
)
DISTRIBUTED BY HASH(order_id) BUCKETS 10
PROPERTIES ("replication_num" = "3"
);-- 创建物化视图
CREATE MATERIALIZED VIEW user_order_mv AS
SELECT u.user_id,u.username,u.city,COUNT(o.order_id) as order_count,SUM(o.amount) as total_amount
FROM users u LEFT JOIN orders o ON u.user_id = o.user_id
GROUP BY u.user_id, u.username, u.city;-- 创建用户
CREATE USER 'app_user' IDENTIFIED BY 'app_password123';
GRANT SELECT_PRIV ON example_db.* TO 'app_user';-- 查看表结构
SHOW CREATE TABLE users;
SHOW CREATE TABLE orders;

6. 健康检查脚本

创建健康检查脚本 health_check.sh

#!/bin/bash# Doris 健康检查脚本
FE_HOST="localhost"
FE_PORT="8030"
BE_HOST="localhost"
BE_PORT="8040"echo "=== Doris 健康检查 ==="# 检查 FE 状态
echo "1. 检查 FE 状态..."
FE_STATUS=$(curl -s http://$FE_HOST:$FE_PORT/api/bootstrap | grep -o '"status"[^,]*' | cut -d: -f2 | tr -d '" ')
if [ "$FE_STATUS" = "OK" ]; thenecho "✓ FE 状态正常"
elseecho "✗ FE 状态异常"
fi# 检查 BE 状态
echo "2. 检查 BE 状态..."
BE_STATUS=$(curl -s http://$BE_HOST:$BE_PORT/api/health | grep -o '"status"[^,]*' | cut -d: -f2 | tr -d '" ')
if [ "$BE_STATUS" = "OK" ]; thenecho "✓ BE 状态正常"
elseecho "✗ BE 状态异常"
fi# 检查数据库连接
echo "3. 检查数据库连接..."
mysql -h $FE_HOST -P 9030 -uroot -e "SHOW DATABASES;" >/dev/null 2>&1
if [ $? -eq 0 ]; thenecho "✓ 数据库连接正常"
elseecho "✗ 数据库连接异常"
fi# 检查集群节点
echo "4. 检查集群节点..."
mysql -h $FE_HOST -P 9030 -uroot -e "SHOW PROC '/frontends'; SHOW PROC '/backends';"echo "=== 健康检查完成 ==="

7. 使用说明

1)给脚本添加执行权限​:

chmod +x *.sh

2)执行顺序​:

# 1. 环境检查
./check_environment.sh# 2. 初始化 FE
./init_fe.sh# 3. 初始化 BE
./init_be.sh# 4. 部署集群(如果是集群环境)
./deploy_cluster.sh# 5. 初始化数据库
mysql -h localhost -P 9030 -uroot < init_database.sql# 6. 健康检查
./health_check.sh

3)注意事项​:

  • 根据实际环境修改 IP 地址、端口和路径配置

  • 确保服务器之间有网络互通

  • 生产环境需要设置更复杂的安全配置

  • 根据数据量调整分桶数和副本数

这些脚本涵盖了 Doris 初始化的主要环节,您可以根据实际需求进行调整和扩展。

http://www.dtcms.com/a/550656.html

相关文章:

  • Linux:权限复盘扩展|粘滞位|软件包管理器|Linux软件生态
  • Marin说PCB之高速差分信号设计:紧耦合还是松耦合?
  • 做网站应该先从什么地方开始在线购物网站 项目
  • php cms网站建设巴中城乡建设局网站
  • h5 服装网站模板潍坊百度快速排名优化
  • 做网站写代码怎么样上海松江区建设局官方网站
  • 滑动窗口算法专题+题目详解
  • 数据中心双供电架构中的智能化切换与预警管理
  • 网站图片怎么做优化济南网络营销网站建设
  • 各种各样的Self-attention学习下(第二十一周周报)
  • 网站前台功能模块介绍郑州网站建设一汉狮网络
  • 网站开发服务 税社交系统开发
  • 简单聊一下vue中的#app
  • 网站空间支持下载但不能下载文件简单门户网站开发
  • 厦门市小学生信息学竞赛(C++)初赛总复习(第二章 算法知识与数据结构 -第四节 队列)
  • 化工类网站建设推广网站备案后下一步做什么
  • 做网站一般需要哪些文件夹?兰州网站开发公司
  • 获取 Excel 工作表的名字【Java 图文详解】
  • 邢台专业做网站贝斯特专业网站
  • 惠州网站建设公司上海企业宣传片制作
  • 网站 建设文档提供邢台专业做网站
  • Gradle Groovy 和 Kotlin kts 语法对比
  • 做网站维护有什么要求物联网开发软件有哪些
  • 普陀做网站特色的岑溪网站开发
  • 对重庆电子政务网站建设评价wordpress模板里写php
  • 企业网站的网络营销功能包括还没做域名解析如何访问ftp的网站文件
  • 免费开网站自己家的电脑做网站需要备案没
  • 心理咨询网站后台学设计常用的网站
  • 安卓开发学习10-中级控件
  • 公司网站升级改版方案wordpress 一级目录