Ubuntu Doris 低配置虚拟机开发环境部署
Ubuntu Doris 部署
软硬件配置列表
工具列表
name | category | desc |
---|---|---|
VMware Workstation 16 | 虚拟机平台 | |
MobaXterm | SSH工具 | 用于方便连接到虚拟机,传输文件 |
ubuntu-22.04.2-live-server-amd64.iso | 系统镜像 | 当前最新Server版, 无GUI,本身对内存需求不高 |
openjdk-11-jdk | JVM运行开发环境 | Doris 运行依赖 |
net-tools | ubuntu 使用ifconfig 确认自身IP地址的依赖 | |
mysql-client | Doris 支持 MySQL协议,故安装运行之后可使用 MySQL Client 和 MySQL JDBC 连接 |
配置及参数列表
物理机配置
两台物理机,每台至少 16G 内存,50G 磁盘空间,或者 一台物理机 32G 内存,120G 磁盘,尽量留足20%冗余空间保证安装过程顺畅
虚拟机配置
node | 内存 | 磁盘 |
---|---|---|
frontend | 8G | 50G |
backend | 8G | 50G |
虚拟机网络适配器
在使用两台物理机时,我先用 VMware 的 NAT模式,安装各自的 Doris 包,最后使用桥接模式启动 原因是一开始配置使用桥接模式时,MobaXterm 向虚拟机中传 Doris 安装包总是中断,故先在 NAT 模式下安装 只用一台物理机时,可全程使用 NAT模式
物理机内存和虚拟机内存
在每台节点,我只分配 4G内存 用于Doris节点运行,过程中并没有资源不足等报错,所以判断Doris个人开发测试环境 单节点可压缩到 4G 虚拟机系统保留冗余的 4G内存 物理机保留冗余出的 8G 内存
虚拟机磁盘
节点需要大概 50G 磁盘空间,这是在 ubuntu安装 自动配置磁盘后,安装openjdk等必要工具时,不会报空间不足的大小 You don‘t have enough free space in /var/cache/apt/archives 在 /var/cache/apt/archives 时我们确实可以使用软连接等方式解决,但是直接在安装时留出空间将更省力
安装过程(包括frontend和backend)
通用的安装过程
虚拟机安装
可直接参照网上社区安装过程
获取root权限
我们在安装 ubuntu 时配置的用户为默认的普通用户, 但后续大部分操作只有 root 有权限, 故直接获取root权限,方便操作
$ sudo su
# 在此输入当前登录用户的密码
查看 CPU 是否支持指令集 avx2
这里用于判断下载是否包含 avx2 的 Doris 安装包
cat /proc/cpuinfo
cat /proc/cpuinfo |grep avx
设置系统最大打开文件句柄数
对应帮助文档要求, 直接修改/etc/security/limits.conf,在最后两行添加
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
配置时钟同步,允许最多5秒的时钟偏差
对应帮助文档要求,参照链接
关闭交换分区(swap)
对应帮助文档要求,参照链接
ext4文件系统
ubuntu 安装系统时会自动格式化为 ext4
安装 net-tools
需要SSH连接ubuntu,我们需要知道ubuntu当前的IP地址,ifconfig 需要安装 net-tools
$ apt install net-tools
创建独立的安装路径并配置权限
$ mkdir /data
$ mkdir /data/module
$ cd /data
$ chmod 777 ./module
连接并传输安装包
从物理机下载 Doris 安装包 并通过 MobaXterm 传输到 /data/module 如果没有提前使用 chmod 修改文件夹权限,有可能报错 Permission denied
安装 openjdk
Doris 运行依赖JVM,为了正常运行以及后续开发遍历,故安装openjdk-11-jdk 若 此处磁盘空间不足将会报错并且无法安装 You don't have enough free space in /var/cache/apt/archives 我们可以采取软连接等措施解决,但最终的解决方案仍然是保持磁盘有足够的可用空间
$ apt install openjdk-11-jdk
解压 Doris 安装包
使用 xz -dk 解压 .xz格式 压缩包得到.tar格式
$ xz -dk apache-doris-1.2.5-bin-x86_64.tar.xz
使用 tar -xvf 解压 .tar格式 压缩包 到文件夹 得到完整文件
$ tar -xvf apache-doris-1.2.5-bin-x86_64.tar
最后将去掉文件夹名称中的特殊字符,得到 /data/module/doris
$ mv apache-doris-1.2.5-bin-x86_64 doris
frontend安装过程
apache-doris-1.2.5-bin-x86_64 包中完整包含 frontend 、 backend 和 broker, 这意味我们只需要 配置对应路径下的 .conf 文件 和 设置对应路径中的依赖项, 就能通过该路径中 bin文件夹里的 .sh 脚本启动该节点, 比如frontend 我们 配置 /data/module/doris/fe/conf/fe.conf 内容, 再通过 /data/module/doris/fe/bin/start_fe.sh脚本启动。
默认配置项
编辑 绝对路径 /data/module/doris/fe/conf/fe.conf 文件内容
# web页面访问端口
http_port=8030
# mysql client 访问端口
query_port=9030
# JVM配置参数建议生产环境调整8G以上。
JAVA_OPTS="..."
# 网络IP匹配路径,用于在对应网段里面扫描frontend和backend
# 例如:10.10.3.0/24,doris将扫描符合 10.10.3.* 的IP地址
# 例如:192.168.0.0/16,doris将扫描符合 192.168.*.* 的IP地址
priority_networks=10.10.3.0/24
# 元数据目录meta_dir默认值为${DORIS_HOME}/doris-meta需手动创建该目录。
# 生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘
${DORIS_HOME}/doris-meta
生产配置
除了默认配置以外添加如下内容:
# workers是阻塞性的业务逻辑
jetty_server_workers=
# 最大字节扫描长度
max_bytes_per_broker_scanner=21474836480(20G,按需更改)
# 删除内容保留时间:86400秒(1天)
catalog_trash_expire_second=86400 (1天)
启动和检查
参照官方帮助文档,frontend 启动
$ cd /data/module/doris/fe/
$ ./bin/start_fe.sh --daemon
检查是否启动成功 通过mysql-client连接Fe,执行
$ mysql -h fe_host -P query_port -u root
mysql> show frontends\G;
其中 fe_host 是当前虚拟机的可访问的IP地址, query_port 是 .conf 文件中 mysql client 的访问端口
如图为true启动成功,访问http://frontend_ip:8030/login,默认账号root,密码无
未启动成功查看log/fe.out相关报错信息
backend安装过程
默认配置项
编辑 绝对路径 /data/module/doris/be/conf/be.conf 文件内容
# 数据存放目录。默认在be/storage下,需要手动创建该目录。
# 多个路径之间使用英文状态的分号[;] 分隔(最后一个目录后不要加 ;)
storage_root_path
# 同frontend 只需保证能相互找到服务器
priority_networks = 10.10.3.0/24
启动和检查
参照官方帮助文档 启动 backend
$ cd /data/module/doris/be/
$ ./bin/start_be.sh --daemon
mysql-client 登录 frontend, 在FE中添加所有BE节点, 多个Backend 需多次执行,一次只能添加一个节点)
mysql> ALTER SYSTEM ADD BACKEND "10.10.3.1:9050";
执行 查看是否添加成功
mysql> SHOW BACKENDS\G;
所有Be的Alive为true即成功
Broker部署
Doris 安装包 默认提供读取HDFS、对象存储的broker,建议每个节点都部署broker apache-doris-1.2.5-bin-x86_64 自带broker安装包,在/data/module/doris/extensions/apache_hdfs_broker 拷贝到任意地方都可以,建议与Fe、Be目录同级,但在本文中它将保持解压路径
配置和启动
与frontend 和 backend 相似 我们需要修改 apache_hdfs_broker.conf 文件中的配置信息
/data/module/doris/extensions/apache_hdfs_broker/conf/apache_hdfs_broker.conf
然后在 bin 目录下启动broker
/data/module/doris/extensions/apache_hdfs_broker/bin/start_broker.sh --daemon
在Fe中添加broker
使用 mysql-client 连接启动的 FE,执行以下命令:
mysql> ALTER SYSTEM ADD BROKER broker_name "broker_host1:broker_ipc_port1","broker_host2:broker_ipc_port2",...;
其中 broker_name 可自定义, broker_host1为broker所在的服务器IP地址, broker_ipc_port1为端口号, 多个broker 的IP和端口用分号相隔
查看Broker状态
mysql> SHOW PROC "/brokers";
转载自:https://juejin.cn/post/7251050775856676920