doris的安装部署
前言:
Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理)
分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。 Apache Doris 的分布式架构非常简洁,易于运维,并且可以支持 10PB 以上的超大数据集
为什么我们需要Apache Doris?
有需要对亿级业务数据的多维实时查询分析的需求,oltp型数据库在大数据量的情况下无法支撑以及查询效率不敬人意,而Doris可以很好的支持这样的查询需求。
一、架构图
FE(Frontend):
存储、维护集群元数据;负责接收、解析查询请求,规划查询计划, 调度查询执行,返回查询结果。主要有三个角色:
(1)Leader 和 Follower:主要是用来达到元数据的高可用,保证单节点宕机的情况下, 元数据能够实时地在线恢复,而不影响整个服务。
(2)Observer:用来扩展查询节点,同时起到元数据备份的作用。如果在发现集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加 observer 的节点。observer 不 参与任何的写入,只参与读取。
BE(Backend):
负责物理数据的存储和计算;依据 FE 生成的物理计划,分布式地执行查询。 数据的可靠性由 BE 保证,BE会对整个数据存储多副本或者是三副本。副本数可根据 需求动态调整
MySQL Client Doris
借助 MySQL 协议,用户使用任意MySQL 的 ODBC/JDBC 以及 MySQL 的客户 端,都可以直接访问 Doris。
Broker Broker
为一个独立的无状态进程。封装了文件系统接口,提供 Doris 读取远端存储系统 中文件的能力,包括 HDFS,S3,BOS 等
二、安装包的编译
暂略(按官网 https://doris.apache.org/zh-CN/docs/install/source-install/compilation-with-docker/
编译很多次都失败)
三、安装编译好的安装包 FE
3.1 文件夹准备
创建几个文件夹,后期用来存放数据 。在/opt/module/apache-doris-0.15.0/ 下:
mkdir -p be-storage1 be-storage2 doris-meta
把编译好的fe文件夹拷贝到 /opt/module/apache-doris-0.15.0 下面
3.2 权限准备
如果生产不给root权限,
1.创建doris账户: adduser doris
2.把fe be broker文件夹及下面的文件都授权doris :
chown -R doris:doris/opt/module/ doris 0.15
我们使用jdk8,配置好环境变量,doris使用0.15版本
3.3 主机准备
准备3台centos7服务器
例如:192.168.10.162 192.168.10.163 192.168.10.164
3.4 修改配置
这里先在一台服务器上部署FE192.168.10.162,后面再加入
编辑vim /opt/module/apache-doris-0.15.0/fe/conf/fe.conf
文件 修改
1: meta_dir =/opt/module/apache-doris-0.15.0/doris-meta
2: priority_networks =192.168.10.162/24 (改成本机ip即可)
3: LOG_DIR = ${DORIS_HOME}/log
这里也可不改,也可改为自己指定的日志目录
3.5 启动FE
启动时注意文件归属和权限:
进入/opt/module/apache-doris-0.15.0/fe/bin 目录执行
./start_fe.sh --daemon
四、安装编译好的安装包 BE
4.1 be包准备
把编译好的be文件夹放在 162 163 164 三台服务器的/opt/module/apache-doris-0.15.0/下面
4.2 编辑文件
编辑 vim /opt/module/apache-doris-0.15.0/be/conf/be.conf 修改
storage_root_path =/opt/module/apache-doris-0.15.0/doris-storage1;/opt/module/apache-doris-0.15.0/doris-storage2
priority_networks =192.168.10.162/24
(自己的服务器ip)
4.3 启动
注意文件归属和权限 进入 /opt/module/apache-doris-0.15.0/be/bin 目录执行
sh start_be.sh --daemon
五、安装mysql客户端
安装mysql-tool(就在162安装)
1.把以下3个文件拷贝到
/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.rpm2.可能没有密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql
yum remove mariadb-libs
rpm -ivh /opt/software/mysql-client/*
3.使用mysql命令行连接,默认没有密码(也可用NAVCAT直接连接) mysql -h 192.168.10.162 -P 9030 -uroot 设置root密码:SET PASSWORD FOR ‘root’ = PASSWORD(‘000000’);
六、添加BE节点
mysql客户端安装好后使用navcat连接doris
ALTER SYSTEM ADD BACKEND “192.168.10.162:9050”;
ALTER SYSTEM ADD BACKEND “192.168.10.163:9050”;
ALTER SYSTEM ADD BACKEND “192.168.10.164:9050”;
七、Broker部署
把 apache_hdfs_broker拷贝到3台服务器的/opt/module/apache-doris-0.15.0/下
启动:
/opt/module/apache-doris-0.15.0/apache_hdfs_broker/bin/start_broker.sh --daemon
添加broker
navcat执行:
ALTER SYSTEM ADD BROKER broker_name
“192.168.10.162:8000”,“192.168.10.163:8000”,“192.168.10.164:8000”;
八、添加FE的FOLLOWER、OBSERVER
FE扩容和缩容(刚才只安装了162)
按刚才第3步骤安装好 163、164的FE
执行添加FE命令:
ALTER SYSTEM ADD FOLLOWER "192.168.10.163:9010";
ALTER SYSTEM ADD OBSERVER "192.168.10.164:9010";
注意
第一次才需要加 --helper 192.168.10.162:9010,以后如果再启动无需加这句
ALTER SYSTEM ADD FOLLOWER "192.168.10.163:9010" --helper 192.168.10.162:9010;
ALTER SYSTEM ADD OBSERVER "192.168.10.164:9010" --helper 192.168.10.162:9010;
删除一个be节点:ALTER SYSTEM DECOMMISSION BACKEND “192.168.10.163:9050”;
九、查看安装详情
查看BE: SHOW PROC ‘/backends’;
查看brokers: SHOW PROC “/brokers”;
查看FE: SHOW PROC ‘/frontends’;
十、访问
访问页面:http://192.168.10.162:8030/
十一、写个脚本 启动、停止单台机器的fe、be、broker
写个shell脚本 start_doris.sh
sh /opt/module/apache-doris-0.15.0/fe/bin/start_fe.sh --daemon
sh /opt/module/apache-doris-0.15.0/be/bin/start_be.sh --daemon
sh /opt/module/apache-doris-0.15.0/apache_hdfs_broker/bin/start_broker.sh --daemon
写个shell脚本 stop_doris.sh
sh /opt/module/apache-doris-0.15.0/fe/bin/stop_fe.sh --daemon
sh /opt/module/apache-doris-0.15.0/be/bin/stop_be.sh --daemon
sh /opt/module/apache-doris-0.15.0/apache_hdfs_broker/bin/stop_broker.sh --daemon
授权
chmod 755 start_doris.sh stop_be.sh
归属
chown -R doris:doris start_doris.sh stop_be.sh