【Doris实战】Apache-doris-2.0.2部署帮助手册
Apache-doris-2.0.2部署帮助手册
校验时间:2023年10月11日
文章目录
- Apache-doris-2.0.2部署帮助手册
- 安装前准备
- 安装包
- 安装要求
- Linux 操作系统版本需求
- 软件需求
- 句柄需求
- 关闭 Swap
- 网络需求
- 部署规划
- 用户规划
- 目录规划
- 免密需求
- 安装步骤
- 配置JDK
- 配置Doris文件
- 启动与停止
- 启动
- 检查
- 停止
版权声明:本文为CSDN博主「顧棟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43820556/article/details/133754689
安装前准备
安装包
apache-doris-2.0.2-bin-x64.tar.gzjdk1.8.0_131.tgzmysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
安装要求
命令
cat /proc/cpuinfo | grep flags来查看当前CPU所支持的指令集命令
netstat -lntp 2>/dev/null|grep LISTEN|awk '{print $4}'|awk -F':' '{print $NF}'|sort|uniq查询已经占用的端口命令
cat /etc/redhat-release查询系统版本
Linux 操作系统版本需求
| Linux 系统 | 版本 |
|---|---|
| CentOS | 7.1 及以上 |
| Ubuntu | 16.04 及以上 |
软件需求
| 软件 | 版本 |
|---|---|
| Java | 1.8 |
| GCC | 4.8.2 及以上 |
句柄需求
设置系统文件句柄数
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
关闭 Swap
修改/etc/sysctl.conf,增加以下配置
# 查看交换区
free -m
# 关闭交换区
# 第一步
swapoff -a
# 第二步修改配置文件 vim /etc/fstab 删除swap相关行/mnt/swap swap swap defaults 0 0 这一行或者注释掉这一行
网络需求
Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口
| 实例名称 | 端口名称 | 默认端口 | 通讯方向 | 说明 |
|---|---|---|---|---|
| BE | be_port | 9060 | FE --> BE | BE 上 thrift server 的端口,用于接收来自 FE 的请求 |
| BE | webserver_port | 8040 | BE <–> BE | BE 上的 http server 的端口 |
| BE | heartbeat_service_port | 9050 | FE --> BE | BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳 |
| BE | brpc_port | 8060 | FE <–> BE, BE <–> BE | BE 上的 brpc 端口,用于 BE 之间通讯 |
| FE | http_port | 8030 | FE <–> FE,用户 <–> FE | FE 上的 http server 端口 |
| FE | rpc_port | 9020 | BE --> FE, FE <–> FE | FE 上的 thrift server 端口,每个fe的配置需要保持一致 |
| FE | query_port | 9030 | 用户 <–> FE | FE 上的 mysql server 端口 |
| FE | arrow_flight_sql_port | 9040 | 用户 <–> FE | FE 上的 Arrow Flight SQL server 端口 |
| FE | edit_log_port | 9010 | FE <–> FE | FE 上的 bdbje 之间通信用的端口 |
| Broker | broker_ipc_port | 8000 | FE --> Broker, BE --> Broker | Broker 上的 thrift server,用于接收请求 |
注:
- 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
- 部署前请确保各个端口在应有方向上的访问权限。
部署规划
| 服务器 | FE | BE | MysqlClient |
|---|---|---|---|
| IP1 | yes | yes | |
| IP2 | yes | ||
| IP3 | yes | ||
| IP4 | yes | ||
| IP5 | yes | ||
| IP6 | yes |
用户规划
groupadd -g 900 doris
useradd -u 210 -g 900 doris
目录规划
将空间大的目录软链接到home的子目录下,比如/opt或者/data。此文档采用/data目录为例
-
用户目录
/home/doris/software链接至/data/doris/software -
数据目录
/home/doris/data链接至/data/doris/data -
日志目录
/home/doris/logs链接至/data/doris/logs
免密需求
集群中任一机器都与其他机器root免密。
# 创建秘钥
ssh-keygen -t rsa
# 各个机器生成秘钥,汇集公钥
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/2.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/3.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/4.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/5.id.rsa.pub
scp ~/.ssh/id_rsa.pub root@ip1:~/.ssh/6.id.rsa.pub
# 生成秘钥认证文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/2.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/3.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/4.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/5.id.rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/6.id.rsa.pub >> ~/.ssh/authorized_keys
# 向集群机器分发认证文件
scp ~/.ssh/authorized_keys root@ip2:~/.ssh/
scp ~/.ssh/authorized_keys root@ip3:~/.ssh/
scp ~/.ssh/authorized_keys root@ip4:~/.ssh/
scp ~/.ssh/authorized_keys root@ip5:~/.ssh/
scp ~/.ssh/authorized_keys root@ip6:~/.ssh/
每台机器都相互免密登录一下,确认免密成功。
安装步骤
# 1.新建用户与用户组
groupadd -g 900 doris;
useradd -u 900 -g 900 doris;
# 2.准备目录-将安装包分发至各个服务器的/data/install_package目录
mkdir -p /data/install_package;
mkdir -p /data/doris/software;
mkdir -p /data/doris/logs;
mkdir -p /data/doris/data;
ln -snf /data/doris/software /home/doris/software;
ln -snf /data/doris/logs /home/doris/logs;
ln -snf /data/doris/data /home/doris/data;
# fe的元数据存储目录
mkdir -p /data/doris/data/doris-meta;
# be的数据存储目录
mkdir -p /data/doris/data/datastorage;# 3.将安装包解压至software目录并配置软链接
tar -zxf /data/install_package/jdk1.8.0_131.tgz -C /home/doris/software/;
tar -zxf /data/install_package/apache-doris-2.0.2-bin-x64.tar.gz -C /home/doris/software/;
ln -snf /home/doris/software/jdk1.8.0_131 /home/doris/software/java;
ln -snf /home/doris/software/apache-doris-2.0.2-bin-x64 /home/doris/software/doris;
# 在某一台机器上安装mysql客户端
tar -zxf /data/install_package/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz -C /home/doris/software/;
ln -snf /home/doris/software/mysql-5.7.43-linux-glibc2.12-x86_64 /home/doris/software/mysql-client;# 4.确认目录权限
chown -R doris:doris /data/doris/;
chown -R doris:doris /home/doris/;
配置JDK
su - doris;
vim /home/doris/.bashrc;
# 在.bashrc文件中追加以下内容
export JAVA_HOME=/home/doris/software/java
export PATH=$JAVA_HOME/bin:$PATH# 配置生效
source /home/doris/.bashrc;
# 检查jdk
java -version;
配置Doris文件
在doris用户下执行
fe.conf
vim /home/doris/software/doris/fe/conf/fe.conf
# 添加配置(使用ip a命令可获取)
priority_networks = 实际本机IP地址/掩码长度
meta_dir=/data/doris/data/doris-meta# the output dir of stderr and stdout
LOG_DIR = /data/doris/logs
be.conf
vim /home/doris/software/doris/be/conf/be.conf
# 添加配置(使用ip a命令可获取)
priority_networks = 实际本机IP地址/掩码长度
storage_root_path=/data/doris/data/datastorage# the output dir of stderr and stdout
LOG_DIR = /data/doris/logs
启动与停止
启动
启动一个FE
su - doris;
cd /home/doris/software/doris/fe;
sh bin/start_fe.sh --daemon;
配置操作
MysqlClient连接第一个启动的FE 增加其他的FE节点和BE节点(无密码连接方式)
/home/doris/software/mysql-client -h 启动的FEIP -P 9030 -uroot
-- edit_log_port位于conf/fe.conf ,默认为9010
mysql> ALTER SYSTEM ADD FOLLOWER "fe2的ip:9010";
mysql> ALTER SYSTEM ADD FOLLOWER "fe3的ip:9010";
-- 查看所有fe节点
mysql> show proc '/frontends';mysql> ALTER SYSTEM ADD BACKEND "be1:9050";
mysql> ALTER SYSTEM ADD BACKEND "be2:9050";
mysql> ALTER SYSTEM ADD BACKEND "be3:9050";
-- 查看所有be节点
mysql> show proc '/backends';
启动其他的FE节点(FE2,FE3)
待加入的FE节点(第一次启动时要加–helper参数,否则follower fe节点无法加入集群)
su - doris;
cd /home/doris/software/doris/fe;
sh bin/start_fe.sh --helper masterFE的IP:edit_log_port --daemon;
启动BE
su - doris;
cd /home/doris/software/doris/be;
sh bin/start_be.sh --daemon
检查
查询FE是否正常
curl http://fe_host:fe_http_port/api/bootstrap
如果返回:{"status":"OK","msg":"Success"},则表示启动成功,其余情况,则可能存在问题。
查询BE是否正常
curl http://be_host:webserver_port/api/health
如果返回:{"status": "OK","msg": "To Be Added"},则表示启动成功,其余情况,则可能存在问题
停止
su - doris;
cd /home/doris/software/doris/fe;
sh bin/stop_fe.shsu - doris;
cd /home/doris/software/doris/be;
sh bin/stop_be.sh
相关文章:
【Doris实战】Apache-doris-2.0.2部署帮助手册
Apache-doris-2.0.2部署帮助手册 校验时间:2023年10月11日 文章目录 Apache-doris-2.0.2部署帮助手册安装前准备安装包安装要求Linux 操作系统版本需求软件需求句柄需求关闭 Swap网络需求 部署规划用户规划目录规划免密需求 安装步骤配置JDK配置Doris文件 启动与停止…...
如何处理接口调用的频率限制
背景 接口提供方有调用频率限制的场景下,如何合理设计接口请求? 方案 采用Redis队列,利用 lpush 和 rpop 命令来实现 首先,将订单依次lpush写入Redis队列。定时任务通过 rpop 获取队列订单进行接口调用。 额外说明: 若想查看…...
Ubuntu 22.04上安装Anaconda,及 conda 的基础使用
1. 安装软件依赖包: apt install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 2. 下载Anaconda安装包 使用 wget下载您从Anaconda网站复制的链接。您将把它输出到一个名为anaconda.sh的文…...
算法练习13——跳跃游戏II
LeetCode 45 跳跃游戏 II 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回…...
算法|每日一题|只出现一次的数字|位运算
136.只出现一次的数字 力扣每日一题:136.只出现一次的数字 之前整理过本题及其扩展,详细说明了思路和做法,链接如下: 只出现一次的数字I,II,III 给你一个 非空 整数数组 nums ,除了某个元素只出…...
Smartforms 打印出现的问题
上半年ECC做了升级 程序代码从ECC迁移到S4 有用户反馈 打印不能用了 经过调试发现在打印程序中 竟然返回2,但是 smartforms ZRPT_CO_YFLL_DY又是存在的 。 然后去激活 并与 ECC对比发现问题 S4的页大小竟然这么小 找到对应的页格式 对比ECC和S4 果然是这个…...
【考研408真题】2022年408数据结构41题---判断当前顺序存储结构树是否是二叉搜索树
文章目录 思路408考研各数据结构C/C代码(Continually updating) 思路 很明显,这是一个顺序存储结构的树的构成方法。其中树的根节点位置从索引0开始,对于该结构,存在有:如果当前根节点的下标为n,…...
深度学习DAY3:激活函数
激活函数映射——引入非线性性质 h (Σ(W * X)b) yσ(h) 将h的值通过激活函数σ映射到一个特定的输出范围内的一个值,通常是[0, 1]或[-1, 1] 1 Sigmoid激活函数 逻辑回归LR模型的激活函数 Sigmoid函数࿰…...
puppeteer
目录 介绍启动方法功能一、爬虫优势如何实现爬虫小demo 功能二、执行脚本百度搜索脚本demo 功能三、获取cookie(这个只能是模拟浏览器当前进入网页的cookie不是平时用的下载的的浏览器的cookie)功能四、监控网页,进行性能分析 介绍 puppetee…...
javascript二维数组(21)执行异步HTTP(Ajax)请求的方法($.get、$.post、$getJSON、$ajax)
执行异步HTTP(Ajax)请求的方法 . g e t 、 .get、 .get、.post、 g e t J S O N 、 getJSON、 getJSON、ajax都是jQuery提供的用于执行异步HTTP(Ajax)请求的方法。每个方法都有其特定的用途和区别。 . g e t :这个方法…...
TypeScript React(下)
目录 TypeScript & React TS开发环境的搭建 tsconfig.json webpack.config.js babel.config.js .eslintrc.js TypeScript & React TS开发环境的搭建 软件版本:TypeScript:3.9.5;React:16.13.1 Node:8.17.0环境搭建:正确搭建一…...
『Linux小程序』进度条
文章目录 缓冲区问题回车与换行的区别进度条小程序 缓冲区问题 假设有一段代码为: #include<iostream> #include<unistd.h> int main() …...
【手写数字识别】GPU训练版本
SVM Adaboost Bagging 完整代码 I import torch import torch.nn.functional as F from torch.utils.data import DataLoader, TensorDataset from torchvision import transforms, datasets import matplotlib.pyplot as plt# 超参数 batch_size 64 num_epochs 10# 数据…...
c#-特殊的集合
位数组 可观察的集合 private ObservableCollection<string> strList new ObservableCollection<string>();// Start is called before the first frame updatevoid Start(){strList.CollectionChanged Change;strList.Add("ssss");strList.Add("…...
Android 使用 eChart 设置标线
echart使用标线 Android部分: import android.webkit.WebView; import com.jianqu.plasmasterilizer.R; import com.jianqu.plasmasterilizer.utils.DisplayUtils; import com.jianqu.plasmasterilizer.utils.TimerUtil; import java.util.ArrayList; import java.…...
红队专题-Cobalt strike 4.x - Beacon重构
红队专题 招募六边形战士队员重构后 Beacon 适配的功能windows平台linux和mac平台C2profile 重构思路跨平台功能免杀代码部分sysinfo包packet包config.go命令的执行shell、run、executepowershell powerpick命令powershell-importexecute-assembly 堆内存加密字符集 招募六边形…...
一文掌握 Go 文件的写入操作
前言 通过案例展示如何读取文件里的内容。本文接着上篇文章的内容,介绍文件的写入操作。 File.Write、File.WriteString、File.WriteAt File.Write(b []byte) (n int, err error) 直接操作磁盘往文件里写入数据,写入单位为字节。 b 参数:…...
小程序入门及案例展示
目录 一、小程序简介 1.1 为什么要使用小程序 1.2 小程序可以干什么 二、前期准备 2.1 申请账号 2.2 开发工具下载与安装 三、电商案例演示 四、入门案例 4.1 项目结构解析 4.2 基础操作及语法 4.3 模拟器 4.4 案例演示 4.4.1 新建页面 4.4.2 头部样式设置 4.4.…...
linux 安装python django pip 遇到的问题
Python解决SSL不可用问题 解决方案: 首先要明白python版本需要和openssl的版本需要相对匹配的,在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl,linux…...
【问题解决】【爬虫】抓包工具charles与pycharm发送https请求冲突问题
问题: 开启charles抓包,运行pycharm发送https请求报以下错误 解决: 修改python代码,发送请求时添加verify false,此时charles也能抓取到pycharm发送的请求 2. 关闭charles抓包,取消勾选window proxy...
3大痛点终结:GSE高级宏编译器的颠覆性突破
3大痛点终结:GSE高级宏编译器的颠覆性突破 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on test coverage and the Curse pa…...
Graphormer高性能部署:PyTorch 2.8.0 + Torch-Geometric 2.4优化实践
Graphormer高性能部署:PyTorch 2.8.0 Torch-Geometric 2.4优化实践 1. 引言 Graphormer是一种基于纯Transformer架构的图神经网络,专为分子属性预测任务设计。与传统的图神经网络(GNN)相比,Graphormer通过全局注意力机制直接建模分子图中原…...
Ostrakon-VL-8B在VMware虚拟机中的一站式部署与性能调优
Ostrakon-VL-8B在VMware虚拟机中的一站式部署与性能调优 想在本地隔离环境里跑通一个强大的多模态大模型,比如Ostrakon-VL-8B,但又不想折腾物理机或者担心影响主系统?VMware虚拟机是个不错的选择。不过,在虚拟机里部署AI应用&…...
MarkEdit 文本编码处理技术深度解析
MarkEdit 文本编码处理技术深度解析 【免费下载链接】MarkEdit Just like TextEdit on Mac but dedicated to Markdown. 项目地址: https://gitcode.com/gh_mirrors/ma/MarkEdit MarkEdit 是一款专为 Markdown 设计的文本编辑器,如同 Mac 上的 TextEdit 但专…...
SAP 生产订单批量创建与下达实战:基于 BAPI_PRODORD_CREATE 的自动化方案
1. 为什么需要批量创建生产订单? 在制造业的实际业务场景中,生产计划部门经常需要根据销售订单、预测数据或库存情况,一次性生成大量生产订单。想象一下,一个汽车零部件工厂每月要处理上千个零部件的生产计划,如果每个…...
Oracle19c EM Express配置与访问全攻略:从零到可视化管理的实践指南
1. 环境准备与基础检查 第一次接触Oracle 19c EM Express时,很多人会直接跳进配置环节,结果往往被各种报错打得措手不及。我刚开始接触时也犯过这个错误,后来才发现做好前期检查能省去80%的麻烦。下面这些准备工作,建议你逐项打勾…...
为什么钉钉、飞书、企微都在做 CLI?这个开源项目给出了最极致的答案
❝AI Agent 很聪明,但面对真实的专业软件,它就是个"睁眼瞎"。CLI-Anything 说:我来治。❞先说一个扎心的事实2026年了,AI Agent 能写代码、能做分析、能聊天能画画——但你让它打开 Blender 建个模?让它用 G…...
OpenClaw节日营销助手:gemma-3-12b-it自动生成祝福语与发送邮件
OpenClaw节日营销助手:gemma-3-12b-it自动生成祝福语与发送邮件 1. 为什么需要节日营销自动化? 去年端午节前夜,我盯着电脑屏幕上的200多个客户邮箱地址发呆。每个客户都需要个性化的节日祝福,但手动编写和发送至少需要6小时。当…...
OpenClaw技能扩展实战:安装Phi-3-vision-128k-instruct专用图文处理模块
OpenClaw技能扩展实战:安装Phi-3-vision-128k-instruct专用图文处理模块 1. 为什么需要专用技能模块? 上周我在整理技术文档时遇到一个典型场景:需要将十几份混杂着截图和文字说明的会议纪要,自动转换成结构化的Markdown文件。当…...
千问3.5-9B提示词工程:优化OpenClaw任务拆解质量
千问3.5-9B提示词工程:优化OpenClaw任务拆解质量 1. 为什么需要优化提示词 去年冬天第一次用OpenClaw自动整理会议纪要时,我被它的"耿直"气笑了——让它"提取关键结论",结果给我返回了整段录音的文字版,连&…...
