FE 主要负责元数据管理、集群管理、用户请求的接入和查询计划的解析等工作。
BE 主要负责数据存储、查询计划的执行等工作。
注:如下介绍单机版,集群版的部署方法与单机版一致,需将be安装包复制到其他节点,注意be安装包的存放位置需要与所有的节点机器目录要一致
第一步:设置系统最大打开文件句柄数
修改 /etc/security/limits.conf, 执行命令:
echo "* soft nofile 204800" >> /etc/security/limits.conf
echo "* hard nofile 204800" >> /etc/security/limits.conf
echo "* soft nproc 204800" >> /etc/security/limits.conf
echo "* hard nproc 204800 " >> /etc/security/limits.conf
修改 /etc/sysctl.conf, 执行命令:
echo fs.file-max = 6553560 >> /etc/sysctl.conf
第二步:下载官网提供的二进制包
下载地址: https://doris.apache.org/download/
tar xvJf apache-doris-fe-1.2.1-bin-x86_64.tar.xz #解压fe
tar xvJf apache-doris-be-1.2.1-bin-x86_64.tar.xz
tar xvJf apache-doris-dependencies-1.2.1-bin-x86_64.tar.xz
第三步:配置操作
mv apache-doris-be-1.2.1-bin-x86_64 be
mv apache-doris-fe-1.2.1-bin-x86_64 fe
mv apache-doris-dependencies-1.2.1-bin-x86_64 dependencies
将java_udf的jar包复制到be/lib目录下
cp /data8/doris_syw/dependencies/java-udf-jar-with-dependencies.jar /data8/doris_syw/be/lib/
设置vm.max_map_count
sysctl -w vm.max_map_count=2000000
第四步:添加环境变量
vi /etc/profile #打开配置文件
#DORIS_HOME
export DORIS_HOME=/data8/doris_syw/fe/
export DORIS_HOME=/data8/doris_syw/be/
export PATH=$PATH:$DORIS_HOME/bin
source /etc/profile #保存配置文件
第五步:配置FE
[root@rc fe]# pwd
/data8/doris_syw/fe #下载二进制包解压后的存放目录
【第一步】进入到fe
[root@rc fe]# ll
total 160
drwxr-xr-x. 2 1103 1103 4096 Jan 9 17:14 bin
drwxr-xr-x. 2 1103 1103 4096 Jan 9 17:09 conf #fe的配置文件存放在此里面
drwxr-xr-x. 4 1103 1103 4096 Jan 9 17:09 doris-meta
drwxr-xr-x. 2 1103 1103 32768 Dec 31 21:50 lib
-rw-r--r--. 1 1103 1103 87050 Dec 31 21:50 LICENSE-dist.txt
drwxr-xr-x. 2 1103 1103 4096 Dec 31 21:50 licenses
drwxr-xr-x. 2 1103 1103 4096 Jan 9 17:09 log
-rw-r--r--. 1 1103 1103 1948 Dec 31 21:50 NOTICE.txt
drwxr-xr-x 2 root root 4096 Jan 9 17:09 plugins
drwxr-xr-x. 2 1103 1103 4096 Dec 31 21:50 spark-dpp
drwxr-xr-x 5 root root 4096 Jan 9 17:09 temp_dir
drwxr-xr-x. 3 1103 1103 4096 Dec 31 21:50 webroot
【第二步】找到fe.conf
[root@rc fe]# cd conf/
[root@rc conf]# ll
total 16
-rw-r--r-- 1 1103 1103 2922 Jan 9 17:06 fe.conf
-rw-r--r--. 1 1103 1103 956 Dec 31 21:50 hdfs-site.xml
-rw-r--r--. 1 1103 1103 2480 Dec 31 21:50 ldap.conf
-rw-r--r-- 1 root root 2920 Jan 9 17:09 log4j2-spring.xml
【第三步】找到如下的内容,并释放掉注释
[root@rc conf]# vim fe.conf
#-----修改配置文件内容如下
meta_dir = ${DORIS_HOME}/doris-meta
priority_networks=192.168.30.118/24 #修改为自己电脑的IP
启动fe
#1、进入到bin目录下
cd /data8/doris_syw/fe/bin
#2、启动fe
./start_fe.sh --daemon
http://192.168.30.118:8030 注:8030是默认端口
第六步:配置BE
cd /data8/doris_syw/be
#在be目录下,创建data存放目录文件
mkdir /data8/doris_syw/be/data/data1
mkdir /data8/doris_syw/be/data/data2
mkdir /data8/doris_syw/be/data/data3
【第一步】进入/data8/doris_syw/be/conf/fe.conf #进入存放be的目录
-rw-r--r-- 1 1103 1103 819 Dec 31 21:50 asan_suppr.conf
-rw-r--r-- 1 1103 1103 2735 Jan 9 17:36 be.conf
-rw-r--r-- 1 1103 1103 956 Dec 31 21:50 hdfs-site.xml
-rw-r--r-- 1 1103 1103 1529 Dec 31 21:50 odbcinst.ini
【第二步】找到如下的内容,并释放掉注释
[root@rc conf]# vim be.conf
#-----修改配置文件内容如下
#配置文件中指定数据存放路径:
storage_root_path=/data8/doris_syw/be/data/data1;/data8/doris_syw/be/data/data2;/data8/doris_syw/be/data/data3
#修改绑定 ip(每台机器修改成自己的 ip)
priority_networks=192.168.30.118/24
#更快的导入速度,默认为2
flush_thread_num_per_store=5
#修改 BE 的配置文件 be.conf 添加以下配置项,重启BE,以获得更好的查询性能
enable_storage_vectorization=true
enable_low_cardinality_optimize=true
【第四步】将dependencies文件夹下的java-udf-jar-with-dependencies.jar移动到BE 的 lib 目录下
[root@rc conf]# cp /data8/doris_syw/dependencies/java-udf-jar-with-dependencies.jar ./
第七步:配置集群
添加BE到FE
#启动be
start_be.sh --daemon #后台启动be
#./bin/start_be.sh #建议第一次时用此方法运行,便于查看错误
#mysql连接fe
mysql -h192.168.30.118 -P9030 -uroot
#无密码,确认即可
#在客户端设置root密码
SET PASSWORD FOR 'root' = PASSWORD('Aa123456');
#退出再次登录即可
mysql -h192.168.30.118 -P9030 -uroot -pAa123456
#添加 BE
mysql> ALTER SYSTEM ADD BACKEND "192.168.30.118:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.30.117:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.30.116:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.30.115:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.30.114:9050";
登录Doris
mysql -h192.168.30.118 -P9030 -uroot -pAa123456
查看BE状态
SHOW PROC '/backends' \G; #注alive要为true
(一)Doris常用操作
启动与停止服务FE/BE
#启动
sh /data8/doris_syw/fe/bin/start_fe.sh --daemo
sh /data8/doris_syw/be/bin/start_be.sh --daemon
#停止
sh /data8/doris_syw/fe/bin/stop_fe.sh
sh /data8/doris_syw/be/bin/stop_be.sh
删除BE
ALTER SYSTEM DROPP BACKEND "hostname:9050";
查看FE的状态
SHOW PROC '/frontends'; #IsMaster、Join 和 Alive 三列均为true,则表示节点正常
(二)报错解决
启动be报错
[root@rc bin]# ./start_be.sh
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/doris/udf/JniUtil
Caused by: java.lang.ClassNotFoundException: org.apache.doris.udf.JniUtil
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
WARNING: Logging before InitGoogleLogging() is written to STDERR
W0109 18:27:14.798044 99676 doris_main.cpp:382] Failed to initialize JNI: Failed to find JniUtil class.
解决方法:报错的原因:安装Java UDF 函数因为从1.2 版本开始支持Java UDF 函数,需要从官网下载 Java UDF 函数的 JAR 包放到 BE 的 lib 目录下,否则可能会启动失败。
(三)部署结果
[1] 如下是BE的运行状态
[2] 如下是FE的运行状态
参考文章:
https://blog.csdn.net/qq_41187116/article/details/125813989
官网安装文档(推荐):https://doris.apache.org/zh-CN/docs/dev/get-starting/
doris官方的tpch建表与查询测试:https://github.com/apache/doris/tree/master/tools/tpch-tools