目录
安装与部署
软硬件配置
1、机器选择
2、软件选择
3、环境信息修改和部署架构
4、安装部署Doris
5、启动FE
6、在FE节点启动MySQL客户端
7、在BE节点启动be
8、查看BE状态
8、查看FE状态是否正常
WEBUI
官方建议
该文档主要介绍了部署 Doris 所需软硬件环境、建议的部署方式、集群扩容缩容,以及集群搭建到运行过程中的常见问题。
由于我这边是用来自己做学习使用,我这边采用了5台虚拟机。每台配置了8C16GB内存100GB硬盘
1、操作系统选择centos7.2的版本64位
2、gcc版本是4.8.5
3、Jdk是1.8
4、Doris的版本选择1.2.3
1、设置系统最大打开文件句柄数
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
2、Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。由于我这边是虚拟机,所以我修改客户机的时间和主机时间同步。从而达到时间同步
3、关闭交换分区(swap)
Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区,
4、主机分配
实例名称 |
IP |
主机 |
FE |
192.168.18.130 |
xlucas1 |
BE |
192.168.18.131 |
xlucas2 |
BE |
192.168.18.132 |
xlucas3 |
BE |
192.168.18.133 |
xlucas4 |
BE |
192.168.18.134 |
xlucas5 |
1、解压
[root@xlucas1 doris]# tar -xvf apache-doris-fe-1.2.3-bin-x86_64.tar.xz
2、修改配置文件
cd /root/doris/apache-doris-fe-1.2.3-bin-x86_64/conf
修改FE的配置文件fe.conf,这里我们主要修改一个参数:priority_networks,添加信息
priority_networks=192.168.18.0/24
注意:
这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 FE 指定唯一的IP地址。
这里假设你的节点 IP 是 192.168.18.130,那么我们可以通过掩码的方式配置为 192.168.18.0/24。
3、配置DORIS_HOME变量
修改 vi ~/.bash_profile,添加信息
export DORIS_HOME=/root/doris/apache-doris-fe-1.2.3-bin-x86_64
添加以后要变量生效 source ~/.bash_profile
bin/start_fe.sh --daemon
我们可以通过http://fe_host:fe_http_port/api/bootstrap 查看是否启动成功
如果返回:
{"msg":"success","code":0,"data":{"replayedJournalId":0,"queryPort":0,"rpcPort":0,"version":""},"count":0}
则表示启动成功,其余情况,则可能存在问题。
采用rpm包安装:
首先获取rpm包:
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-common-8.0.25-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-libs-8.0.25-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-client-8.0.25-1.el7.x86_64.rpm
再次将这些包放在一个路径下面安装
rpm -Uvh *.rpm --nodeps --force
MySQL客户端安装完成以后开始配置BE节点
在FE节点运行命令:
mysql -h fe_host -P query_port -uroot
fe_host为FE节点
query_port为在FE节点conf/fe.conf中设置的端口号
mysql -h 192.168.18.130 -P 9030 -uroot
登录后,执行以下命令来添加每一个BE:
ALTER SYSTEM ADD BACKEND "be_host:heartbeat-service_port";
其中 be_host 为 BE 所在节点 ip;heartbeat_service_port 在 be/conf/be.conf 中。
启动be
bin/start_be.sh --daemon
启动报错
[root@xlucas4 apache-doris-be-1.2.3-bin-x86_64-noavx2]# bin/start_be.sh --daemon
Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'.
解决方案:sysctl -w vm.max_map_count=2000000
再次启动报错
[root@xlucas2 apache-doris-be-1.2.3-bin-x86_64-noavx2]# 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
W0416 01:53:45.238514 2901 doris_main.cpp:382] Failed to initialize JNI: [INTERNAL_ERROR]Failed to find JniUtil class.
原因:安装Java UDF 函数因为从 1.2 版本开始支持 Java UDF 函数,需要从官网下载 Java UDF 函数的 JAR 包放到 BE 的 lib 目录下,否则可能会启动失败。在官网下载依赖的jar包。下载完成后拷贝到BE的lib目录下即可
将包scp到BE节点:scp ./java-udf-jar-with-dependencies.jar [email protected]:/root/doris/apache-doris-be-1.2.3-bin-x86_64-noavx2/lib
注意:如果不是安装doris-1.2.0以后的版本可以不用下载该jar包
如果看到这些日志表示启动成功
方式一:使用 mysql-client 连接到 FE,并执行
SHOW PROC '/backends';
查看 BE 运行情况。如一切正常,isAlive 列应为 true
方式二:通过URL来访问
http://be_host:webserver_port/api/health
webserver_port BE安装节点conf/be.conf中配置的端口
返回如下页面说明BE状态正常
http://fe_host:fe_http_port/api/bootstrap
fe_host FE节点ip
fe_http_port FE安装节点conf/fe.conf中配置的端口
返回如下页面说明FE状态正常
mysql查看信息
1、检测FE
show frontends\G;
2、检测BE
SHOW BACKENDS\G;
http://fe_host:fe_http_port
用户名默认为root,没有密码,点击登录,可以看到如下页面
FE 节点的数量