Ubuntu二进制安装Apache Doris(2.1版本)

标题

  • [一、 下载二进制包](#一、 下载二进制包)
  • 二、修改环境变量
  • [三、安装 FE](#三、安装 FE)
    • 1.先确定java配置
    • [2.在解压后的文件夹下编辑 FE 配置文件](#2.在解压后的文件夹下编辑 FE 配置文件)
    • [3.启动 FE](#3.启动 FE)
    • [4.检查 FE 状态](#4.检查 FE 状态)
  • [四、安装 BE](#四、安装 BE)
    • [1.配置 BE](#1.配置 BE)
    • [2.启动 BE](#2.启动 BE)
    • [3.在集群中注册 BE 节点](#3.在集群中注册 BE 节点)
    • [4.检查 BE 状态](#4.检查 BE 状态)
  • [五、 运行查询](#五、 运行查询)
  • [五、 设置开机自启](#五、 设置开机自启)

一、 下载二进制包

下载对应的 Doris 二进制安装包,并解压到指定目录。

我们问需要看项目的JDK版本。JDK8的话就使用2.1版本,17可以使用3.x和4.x版本
2.1GitHub下载链接
3.x和4.x下载链接

二、修改环境变量

1.修改系统最大打开文件句柄数

通过以下命令可以调整最大文件句柄数。在调整后,需要重启会话以生效配置:

java 复制代码
nano /etc/security/limits.conf 

在最后加上

java 复制代码
* soft nofile 655350
* hard nofile 655350
root soft nofile 655350
root hard nofile 655350

修改 systemd 服务配置

java 复制代码
sudo nano /etc/systemd/system.conf

添加或修改

java 复制代码
DefaultLimitNOFILE=655350
java 复制代码
sudo nano /etc/systemd/user.conf

添加或修改

java 复制代码
DefaultLimitNOFILE=655350

修改 pam 配置

java 复制代码
sudo nano /etc/pam.d/common-session

确保包含:

java 复制代码
session required pam_limits.so

重启系统

java 复制代码
sudo reboot

检查配置

java 复制代码
ulimit -n

2.修改虚拟内存区域

通过以下命令可以永久修改虚拟内存区域至少为 2000000,并立即生效:

java 复制代码
cat >> /etc/sysctl.conf << EOF
vm.max_map_count = 2000000
EOF
java 复制代码
sudo sysctl -p

三、安装 FE

1.先确定java配置

java 复制代码
echo $JAVA_HOME

我的就是

java 复制代码
/usr/lib/jvm/java-8-openjdk-amd64

2.在解压后的文件夹下编辑 FE 配置文件

解压后文件目录

进入fe,修改 /fe/conf/fe.conf

java 复制代码
nano fe.conf
java 复制代码
## 指定 Java 环境
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

# 指定 FE 监听 IP 的 CIDR 网段
priority_networks=127.0.0.1/32

3.启动 FE

执行 start_fe.sh 脚本启动 FE 进程:

java 复制代码
apache-doris/fe/bin/start_fe.sh --daemon

4.检查 FE 状态

使用 MySQL 客户端连接集群,并检查集群状态:

java 复制代码
mysql -uroot -P9030 -h127.0.0.1 -e "show frontends;"

四、安装 BE

1.配置 BE

修改 BE 配置文件 apache-doris/be/conf/be.conf 的以下内容:

java 复制代码
## 指定 Java 环境
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

# 指定 FE 监听 IP 的 CIDR 网段
priority_networks=127.0.0.1/32

2.启动 BE

通过以下命令启动 BE 进程:

java 复制代码
apache-doris/be/bin/start_be.sh --daemon

如果出现

Please disable swap memory before installation

使用命令行永久禁用

java 复制代码
# 备份 fstab 文件
sudo cp /etc/fstab /etc/fstab.bak

# 注释掉所有包含 swap 的行
sudo sed -i '/swap/s/^/#/' /etc/fstab

再次启动BE即可

如果出现这个,就算上面一开始的配置没有配好

3.在集群中注册 BE 节点

使用 MySQL 客户端连接 Doris:

java 复制代码
mysql -uroot -P9030 -h127.0.0.1

使用 ADD BACKEND 命令注册 BE 节点:

java 复制代码
ALTER SYSTEM ADD BACKEND "127.0.0.1:9050";

4.检查 BE 状态

java 复制代码
mysql -uroot -P9030 -h127.0.0.1 -e "show backends;"

五、 运行查询

java 复制代码
mysql -uroot -P9030 -h127.0.0.1

修改密码

java 复制代码
# 在MySQL中执行以下命令:
ALTER USER 'root'@'%' IDENTIFIED BY 'YourSecurePassword123!';

五、 设置开机自启

首先关闭 fe和be

java 复制代码
/opt/apache-doris-2.1.10-bin-x64/fe/bin/stop_fe.sh
/opt/apache-doris-2.1.10-bin-x64/be/bin/stop_be.sh

配置 Doris FE 为 systemd 服务

java 复制代码
sudo nano /etc/systemd/system/doris-fe.service

添加以下内容

java 复制代码
[Unit]
Description=Apache Doris Frontend
After=network.target

[Service]
Type=forking
ExecStart=/opt/apache-doris-2.1.10-bin-x64/fe/bin/start_fe.sh --daemon
ExecStop=/opt/apache-doris-2.1.10-bin-x64/fe/bin/stop_fe.sh
Restart=on-failure
LimitNOFILE=655350

[Install]
WantedBy=multi-user.target

配置 Doris BE 为 systemd 服务

java 复制代码
sudo nano /etc/systemd/system/doris-be.service
java 复制代码
[Unit]
Description=Apache Doris Backend
After=network.target

[Service]
Type=forking
ExecStart=/opt/apache-doris-2.1.10-bin-x64/be/bin/start_be.sh --daemon
ExecStop=/opt/apache-doris-2.1.10-bin-x64/be/bin/stop_be.sh
Restart=on-failure
LimitNOFILE=655350

[Install]
WantedBy=multi-user.target
java 复制代码
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable doris-fe
sudo systemctl enable doris-be

sudo systemctl start doris-fe
sudo systemctl start doris-be

查看服务状态

java 复制代码
sudo systemctl status doris-fe
sudo systemctl status doris-be
相关推荐
Yue丶越32 分钟前
【Python】基础语法入门(四)
linux·开发语言·python
木童66236 分钟前
Nginx 深度解析:反向代理与负载均衡、后端Tomcat
linux·运维·nginx
赖small强1 小时前
【Linux 网络基础】网络通信中的组播与广播:基础概念、原理、抓包与应用
linux·网络·broadcast·组播·广播·multicast
陌路201 小时前
Linux是如何收发网络包的?
linux·网络
带鱼吃猫2 小时前
Linux系统:策略模式实现自定义日志功能
linux·c++
minji...2 小时前
Linux 进程概念 (三) (进程状态,僵尸进程,孤儿进程,进程优先级)
linux·运维·服务器
是小胡嘛8 小时前
C++之Any类的模拟实现
linux·开发语言·c++
口袋物联8 小时前
设计模式之工厂模式在 C 语言中的应用(含 Linux 内核实例)
linux·c语言·设计模式·简单工厂模式
qq_479875439 小时前
X-Macros(1)
linux·服务器·windows