2024年2月5日

Doris环境安装(一)

作者 高劲松

服务器规划

序号主机名称规格IP 
1doris-node112G/100G10.168.1.35FE,BE
2doris-node28G/100G10.168.1.36BE

宿主机情况

软件准备

公共设置

网络配置

配置固定IP,并且保证能够上外网

vi /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=10.168.1.21

NETMASK=255.255.255.0

GATEWAY=10.168.1.1

BOOTPROTO=static

[root@localhost ~]# vi /etc/resolv.conf

# Generated by NetworkManager

nameserver 8.8.8.8

service network start

设置主机名

hostnamectl set-hostname 命令用于设置主机名。

使用方法为: hostnamectl set-hostname [new_hostname] 。

例如,要将主机名更改为 “mycomputer”,可以使用命令 hostnamectl set-hostname mycomputer 。

设置etc/hosts(所有节点)

10.168.1.31 node1

10.168.1.32 node2

10.168.1.33 node3

关闭防火墙与selinux文件

systemctl stop firewalld

systemctl disable firewalld.service

关闭selinux

输入vim /etc/selinux/config,将SELINUX=disabled

临时关闭 selinux

setenforce 0

永久关闭 selinux

sed -i “s/^SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config

设置 SSH 免密码登录(主节点)

1.ssh-keygen -t rsa

2.cd ~/.ssh

3.# 将公钥导入到认证文件

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

4.# 认证文件合并,输入 yes 回车再输入服务器密码

ssh-copy-id node1

安装 ntp

yum install -y ntp

启动ntp

systemctl start ntpd

开机自动启动

systemctl enable ntpd

查看ntp状态

systemctl status ntpd

安装JDK

上传 JDK8 压缩文件

解压

tar -zxvf jdk-8u212-linux-x64.tar.gz

配置当前用户环境变量

vim ~/.bash_profile

在文件中添加如下命令,记得切换自己文件路径

export JAVA_HOME=/usr/java/jdk1.8.0_212

export PATH=$JAVA_HOME/bin:$PATH

立即生效

source ~/.bash_profile

修改可打开文件数(每个节点)

sudo vim /etc/security/limits.conf

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535

* hard nproc 65535

重启永久生效,也可以用 ulimit -n 65535 临时生效。

安装Doris

可以使用tar命令在Linux中解压.tar.xz文件。

tar -xf filename.tar.xz

2.4.2 部署 FE 节点

1)创建 fe 元数据存储的目录

mkdir -p /data/doris-fe/doris-meta

2)修改 fe 的配置文件

vim /opt/doris-fe-1.1.5/fe/conf/fe.conf

# vi /opt/apache-doris-1.2.7.1-bin-x64/fe/conf/fe.conf

#配置文件中指定元数据路径:

meta_dir = /data/doris-fe/doris-meta

#修改绑定 ip(每台机器修改成自己的 ip)

priority_networks = 192.168.8.101/24

注意:

1) 生产环境强烈建议单独指定目录不要放在 Doris 安装目录下,最好是单独的磁盘(如果

有 SSD 最好)。

2) 如果机器有多个 ip, 比如内网外网, 虚拟机 docker 等, 需要进行 ip 绑定,才能正确识

别。

⚫ JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。

3)启动 hadoop1 的 FE

/opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh –daemon

注意:检查JDK是否安装

2.4.3 配置 BE 节点

1)分发 BE

scp -r /opt/module/apache-doris-0.15.0/be hadoop2:/opt/module

2)创建 BE 数据存放目录(每个节点)

mkdir  -p /data/doris-be/doris-storage1

3)修改 BE 的配置文件(每个节点)

vim /opt/doris-be-0.15.0/be/conf/be.conf

#配置文件中指定数据存放路径:

storage_root_path = /data/doris-be/doris-storage1

#修改绑定 ip(每台机器修改成自己的 ip)

priority_networks = 192.168.8.101/24

注意:

⚫ storage_root_path 默认在 be/storage 下,需要手动创建该目录。多个路径之间使用英文状

态的分号;分隔(最后一个目录后不要加)。

⚫ 可以通过路径区别存储目录的介质,HDD 或 SSD。可以添加容量限制在每个路径的末

尾,通过英文状态逗号,隔开,如:

storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,

10;/home/disk2/doris

说明:

/home/disk1/doris.HDD,50,表示存储限制为 50GB,HDD;

/home/disk2/doris.SSD,10,存储限制为 10GB,SSD;

/home/disk2/doris,存储限制为磁盘最大容量,默认为 HDD

⚫ 如果机器有多个 IP, 比如内网外网, 虚拟机 docker 等, 需要进行 IP 绑定,才能正确识

别。

2.4.4 在 在 FE 中添加所有 BE 节点

BE 节点需要先在 FE 中添加,才可加入集群。可以使用 mysql-client 连接到 FE。

1)安装 MySQL Client

(1)创建目录

mkdir /opt/software/mysql-client/

(2)上传相关以下三个 rpm 包到/opt/software/mysql-client/

➢ mysql-community-client-5.7.28-1.el7.x86_64.rpm

➢ mysql-community-common-5.7.28-1.el7.x86_64.rpm

➢ mysql-community-libs-5.7.28-1.el7.x86_64.rpm

(3)检查当前系统是否安装过 MySQL

sudo rpm -qa|grep mariadb

#如果存在,先卸载

sudo rpm -e –nodeps mariadb mariadb-libs mariadb-server

(4)安装

rpm -ivh /opt/software/mysql-client/*

rpm -ivh *.rpm   –nodeps –force

[root@node1 ~]# rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm  –nodeps –force

2)使用 MySQL Client 连接 FE

mysql -h hadoop1 -P 9030 -uroot

默认 root 无密码,通过以下命令修改 root 密码。

SET PASSWORD FOR ‘root’ = PASSWORD(‘000000’);

3)添加 BE

ALTER SYSTEM ADD BACKEND “hadoop1:9050”;

ALTER SYSTEM ADD BACKEND “hadoop2:9050”;

ALTER SYSTEM ADD BACKEND “hadoop3:9050”;

4)查看 BE 状态

SHOW PROC ‘/backends’;

show backends\G

2.4.5 启动 BE

1)启动 BE(每个节点)

/opt/module/apache-doris-0.15.0/be/bin/start_be.sh –daemon

2)查看 BE 状态

mysql -h hadoop1 -P 9030 -uroot -p

SHOW PROC ‘/backends’;

Alive 为 true 表示该 BE 节点存活。

[root@localhost bin]# ./start_be.sh –daemon
Please set vm.max_map_count to be 2000000 under root using ‘sysctl -w vm.max_map_count=2000000’.
[root@localhost bin]# sysctl -w vm.max_map_count=2000000
vm.max_map_count = 2000000
[root@localhost bin]# ./start_be.sh –daemon
Please set the maximum number of open file descriptors to be 65536 using ‘ulimit -n 65536’.
[root@localhost bin]# ulimit -n 65536
[root@localhost bin]# ./start_be.sh –daemon

2.4.6 部署 FS_Broker (可选)

Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要

部署相应的 Broker,默认提供了读取 HDFS、百度云 BOS 及 Amazon S3 的 fs_broker。

fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。

1)编译 FS_BROKER 并拷贝文件

(1)进入源码目录下的 fs_brokers 目录,使用 sh build.sh 进行编译

(2)拷贝源码 fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点

上,改名为: apache_hdfs_broker。建议和 BE 或者 FE 目录保持同级。

方法同 2.2。

2)启动 Broker

/opt/module/apache-doris-

0.15.0/apache_hdfs_broker/bin/start_broker.sh –daemon

3)添加 Broker

要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节

点列表。

(1)使用 mysql-client 连接启动的 FE,执行以下命令:

mysql -h hadoop1 -P 9030 -uroot -p

ALTER SYSTEM ADD BROKER broker_name

“hadoop1:8000″,”hadoop2:8000″,”hadoop3:8000”;

其中 broker_host 为 Broker 所在节点 ip;broker_ipc_port 在 Broker 配置文件中的

conf/apache_hdfs_broker.conf。

4)查看 Broker 状态

使用 mysql-client 连接任一已启动的 FE,执行以下命令查看 Broker 状态:

SHOW PROC “/brokers”;

注:在生产环境中,所有实例都应使用守护进程启动,以保证进程退出后,会被自动拉

起,如 Supervisor(opens new window)。如需使用守护进程启动,在 0.9.0 及之前版本中,

需要修改各个 start_xx.sh 脚本,去掉最后的 & 符号。从 0.10.0 版本开始,直接调用 sh

start_xx.sh 启动即可