安装doris

一、下载

Index of /doris
下载 - Apache Doris

查看cpu支持avx2指令集
cat /proc/cpuinfo
cat /proc/cpuinfo |grep avx2

支持则下载

二、环境准备

1、集群规划

10.9.70.17210.9.70.16610.9.70.16810.9.70.87
JSYF3JSYF1JSYF2JSYF4
DorisBackendBackend/Frontend OBSERVERBackend/Frontend FOLLOWERFrontend FOLLOWER
BrokerBrokerBrokerBrokerBroker

2、目录规划

部署目录日志目录元数据目录数据存储目录
FE/opt/module/apache-doris-fe-1.2.3-bin-x86_64//opt/module/apache-doris-fe-1.2.3-bin-x86_64/log//opt/module/doris-meta/
BE/opt/module/apache-doris-be-1.2.3-bin-x86_64//opt/module/apache-doris-be-1.2.3-bin-x86_64/log//opt/module/doris_storage1/,/opt/module/doris_storage1/
Broker/opt/module/doris_storage1//opt/module/apache_hdfs_broker/log/

3、开发测试环境

模块CPU内存磁盘网络实例数量
Frontend8核+8GB+SSD 或 SATA,10GB+ *千兆网卡1
Backend8核+16GB+SSD 或 SATA,50GB+ *千兆网卡1-3 *

4、生产环境

模块CPU内存磁盘网络实例数量(最低要求)
Frontend16核+64GB+SSD 或 RAID 卡,100GB+ *万兆网卡1-3 *
Backend16核+64GB+SSD 或 SATA,100G+ *万兆网卡3 *

注1:

  • FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
  • BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。
  • 一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差)
  • 测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。
  • 所有部署节点关闭 Swap。

注2:FE 节点的数量

  • FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统称 Follower)。
  • FE 节点数据至少为1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
  • Follower 的数量必须为奇数,Observer 数量随意。
  • 根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 3 个 Follower 和 1-3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1-3 个 Observer。

通常我们建议 10 ~ 100 台左右的机器,来充分发挥 Doris 的性能(其中 3 台部署 FE(HA),剩余的部署 BE)
当然,Doris的性能与节点数量及配置正相关。在最少4台机器(一台 FE,三台 BE,其中一台 BE 混部一个 Observer FE 提供元数据备份),以及较低配置的情况下,依然可以平稳的运行 Doris。
如果 FE 和 BE 混部,需注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。

5、网络需求

Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口

实例名称端口名称默认端口通讯方向说明
BEbe_port9060FE --> BEBE 上 thrift server 的端口,用于接收来自 FE 的请求
BEwebserver_port8040BE <–> BEBE 上的 http server 的端口
BEheartbeat_service_port9050FE --> BEBE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
BEbrpc_port8060FE <–> BE, BE <–> BEBE 上的 brpc 端口,用于 BE 之间通讯
FEhttp_port8030FE <–> FE,用户 <–> FEFE 上的 http server 端口
FErpc_port9020BE --> FE, FE <–> FEFE 上的 thrift server 端口,每个fe的配置需要保持一致
FEquery_port9030用户 <–> FEFE 上的 mysql server 端口
FEedit_log_port9010FE <–> FEFE 上的 bdbje 之间通信用的端口
Brokerbroker_ipc_port8000FE --> Broker, BE --> BrokerBroker 上的 thrift server,用于接收请求

6、系统要求

1)设置系统最大打开文件句柄数

设置系统最大打开文件句柄数

2)时钟同步

时钟同步

3)关闭交换分区(swap)

关闭交换分区(swap)

4)关闭防火墙以及selinux

# 关闭防火墙
ansible all -a "systemctl stop firewalld.service"
# 禁止防火墙开机启动
ansible all -a "systemctl disable firewalld.service"

# 查看服务是否开机启动
ansible all -a "systemctl is-enabled firewalld.service"

# 查看防火墙状态
ansible all -a "firewall-cmd --state"

#关闭selinux要执行
ansible all -a "setenforce 0"


5)配置对应域名


6)java

ansible all -a "java -version"
环境变量
vim /etc/profile

#添加环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_333-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JRE_HOME/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

激活环境变量 source /etc/profile

三、安装FE、BE

1、安装部署FE

1)、将FE安装包拷贝至/opt/module/下


tar -xvf apache-doris-fe-1.2.3-bin-x86_64.tar.xz

2)、配置 FE

vim /opt/module/apache-doris-fe-1.2.3-bin-x86_64/conf/fe.conf

meta_dir = /opt/module/doris-meta
#指定IP
priority_networks=10.9.70.87/24
JAVA_HOME=/usr/java/jdk1.8.0_333-amd64

#FE的某些操作长时间占用锁,导致元数据写操作响应时间过长导致的
bdbje_lock_timeout_second=5
  • 配置文件为 conf/fe.conf。其中注意:meta_dir是元数据存放位置。默认值为 ${DORIS_HOME}/doris-meta。需手动创建该目录。

注意:生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置

  • fe.conf 中 JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。
  • 添加 priority_networks 参数

priority_networks=10.9.70.87/24

注意:
这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 FE 指定唯一的IP地址。
这里假设你的节点 IP 是 10.9.70.87,那么我们可以通过掩码的方式配置为 10.9.70.0/24。

  • 配置jdk

~~JAVA_HOME=/path/to/jdk/~~
网络地址查看ifconfig


创建元数据存储文件
mkdir /opt/module/doris-meta
拷贝到166、168服务器``

3)、启动

sh /opt/module/apache-doris-fe-1.2.3-bin-x86_64/bin/start_fe.sh --daemon

4)验证

jps

5)查看 FE 运行状态

你可以通过下面的命令来检查 Doris 是否启动成功
curl [http://127.0.0.1:8030/api/bootstrap](http://127.0.0.1:8030/api/bootstrap)

http://10.9.70.87:8030/login

注意:
这里我们使用 Doris 内置的默认用户 root 进行登录,密码是空
这是一个 Doris 的管理界面,只能拥有管理权限的用户才能登录,普通用户不能登录。

6)连接 FE

我们下面通过 MySQL 客户端来连接 Doris FE,下载免安装的 MySQL 客户端
解压刚才下载的 MySQL 客户端,在 bin/ 目录下可以找到 mysql 命令行工具。然后执行下面的命令连接 Doris。
mysql -uroot -P9030 -h10.9.70.87

注意:
这里使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户,具体的用户权限查看
权限管理
-P :这里是我们连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port
-h
: 这里是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用127.0.0.1,这种也是 Doris
提供的如果你忘记 root 密码,可以通过这种方式不需要密码直接连接登录,进行对 root 密码进行重置

执行下面的命令查看 FE 运行状态
修改mysql密码
第一次连接,没有密码,这里我们修改root密码

SET PASSWORD FOR 'root' = PASSWORD('Stwc.2wsx');

添加其余的FE节点

ALTER SYSTEM ADD FOLLOWER "JSYF2:9010";ALTER SYSTEM ADD OBSERVER "JSYF1:9010";

删除

ALTER SYSTEM DROP FOLLOWER "JSYF2:9010"; ALTER SYSTEM DROP OBSERVER  "JSYF1:9010";
show frontends\G;

然后你可以看到类似下面的结果:

show frontends;


166、168节点fe启动
sh /opt/module/apache-doris-fe-1.2.3-bin-x86_64/bin/start_fe.sh --helper 10.9.70.87:9010 --daemon
再次查看show frontends;

Alive全部激活

切记
第一次启动fe一定要用–helper启动,否则启动不成功,无法加入集群,必须借助已经启动的FE节点(master或者follower)来扩容新的节点,helper
不能指向 新FE节点 自身
当新的fe第一次启动失败,或无法加入集群时。修改配置后,一定要先清空fe的meta路径下所有文件,然后再重启fe

迁移到87
ansible JSYF4 -m copy -a 'src=/opt/module/apache-doris-fe-1.2.3-bin-x86_64/ dest=/opt/module/apache-doris-fe-1.2.3-bin-x86_64/ mode=755 owner=root'

2、安装BE

1)、拷贝文件到其他3台服务器

ansible JSYF1,JSYF2 -m copy -a 'src=/opt/module/apache-doris-be-1.2.3-bin-x86_64.tar.xz dest=/opt/module mode=755 owner=root'
解压文件
ansible JSYF1,JSYF2,JSYF3 -a 'tar -xvf /opt/module/apache-doris-be-1.2.3-bin-x86_64.tar.xz -C /opt/module/'

2)、修改配置文件

vim /opt/module/apache-doris-be-1.2.3-bin-x86_64/conf/be.conf

#配置存储目录
storage_root_path = /opt/module/doris_storage1,10;/opt/module/doris_storage2

#配置IP地址
priority_networks = 10.9.70.166/24

#配置JAVA_HOME
JAVA_HOME=/usr/java/jdk1.8.0_333-amd64


创建存储目录
ansible JSYF1,JSYF2,JSYF3 -a 'mkdir /opt/module/doris_storage1 && mkdir /opt/module/doris_storage2'

3)、登陆mysql

 mysql -h10.9.70.87 -P 9030 -uroot

登录后添加be节点,port为be上的heartbeat_service_port端口,默认9050

ALTER SYSTEM ADD BACKEND "JSYF1:9050"; ALTER SYSTEM ADD BACKEND "JSYF2:9050"; ALTER SYSTEM ADD BACKEND "JSYF3:9050";

4)、java-udf-jar-with-dependencies.jar 放到 be/lib 目录下

ansible JSYF1,JSYF2,JSYF3 -m copy -a 'src=/opt/module/java-udf-jar-with-dependencies.jar dest=/opt/module/apache-doris-be-1.2.3-bin-x86_64/lib mode=755 owner=root'

5)、启动be节点 安装到这里了

sh /opt/module/apache-doris-be-1.2.3-bin-x86_64/bin/start_be.sh --daemon 


永久修改:

vim /etc/sysctl.confvm.max_map_count=2000000 sysctl -p

vm.max_map_count=2000000配置到/etc/sysctl.conf中,然后执行sysctl -p生效,重启os后也会持久
#临时 sysctl -w vm.max_map_count=2000000

6)、通过mysql客户端,检测be节点状态,alive必须为true

mysql -h10.9.70.87 -P9030 -uroot -p
SHOW PROC '/backends';

注意,此步的be.conf中 storage_root_path =
/root/apache-doris-0.15/be/storage1,10;/root/apache-doris-0.15/be/storage2一定要配好,否则会启动出错,并且storage1和storage2要删除重新建立

3、broker部署

Broker 是用于访问外部数据源(如 hdfs)的进程。通常,在每台机器上部署一个 broker 实例即可。
apache-doris-dependencies-1.2.3-bin-x86_64文件包中

Broker部署
可选,非必须部署,部署FS_BROKER,BROKER以插件的形式,独立与Doris的部署,建议每个PE和BE节点都部署一个Broker,Broker是用于访问外部数据源的进程,默认是HDSF。上传编译好的hdfs_broker。

4、集群启停文件

#!/bin/bash

# use-method: starrocks.sh start|stop|restart

fe_hosts=(JSYF4 JSYF1 JSYF2)
be_hosts=(JSYF1 JSYF2 JSYF3)
broker_hosts=(JSYF1 JSYF2 JSYF3 JSYF4)

case $1 in

"start"){

    for i in ${fe_hosts[*]}
    do
        echo "=================== start $i's fe service ================"
        ssh $i "/opt/module/apache-doris-fe-1.2.3-bin-x86_64/bin/start_fe.sh  --daemon"
    done


    for i in ${be_hosts[*]}
    do
        echo "=================== start $i's be  service ================"
        ssh $i "/opt/module/apache-doris-be-1.2.3-bin-x86_64/bin/start_be.sh --daemon"
    done


            for i in ${broker_hosts[*]}
    do
        echo "=================== start $i's  broker service ================"
        ssh $i "/opt/module/apache_hdfs_broker/bin/start_broker.sh --daemon"
    done

};;
"stop"){

    for i in ${broker_hosts[*]}
    do
        echo "=================== stop $i's broker service ================"
        ssh $i "/opt/module/apache_hdfs_broker/bin/stop_broker.sh"
    done


        for i in ${be_hosts[*]}
    do
        echo "=================== stop $i's be service ================"
        ssh $i "/opt/module/apache-doris-be-1.2.3-bin-x86_64/bin/stop_be.sh"
    done

    for i in ${fe_hosts[*]}
    do
        echo "=================== stop $i's fe service ================"
         ssh $i "/opt/module/apache-doris-fe-1.2.3-bin-x86_64/bin/stop_fe.sh"
    done

};;
"status"){
    for i in ${fe_hosts[*]}
    do
        echo "=================== status $i's fe service ================"
         ssh $i "jps | grep StarRocksFE"
    done

    for i in ${be_hosts[*]}
    do
        echo "=================== status $i's be  service ================"
        ssh $i "ps -ef | grep starrocks_be | grep -v 'grep'"
    done

    for i in ${broker_hosts[*]}
    do
        echo "=================== status $i's broker service ================"
        ssh $i "jps | grep BrokerBootstrap | grep -v ‘JAVA_TOOL_OPTIONS’"
    done
};;
"restart")

 ./doris-cluster.sh stop

 sleep 2

 ./doris-cluster.sh start

;;

*)

 echo "Parameter ERROR!!! starrocks.sh start|stop|restart"

 ;;

esac



添加脚本执行权限

sudo +x doris-cluster.sh

5、连接

使用Navicat连接

密码已修改“Stwc.2wsx

be的web界面
http://10.9.70.172:18040/
http://10.9.70.168:18040/
http://10.9.70.166:18040/
fe的web界面
http://10.9.70.166:8030/home
http://10.9.70.168:8030/home
http://10.9.70.87:8030/home

四、负载均衡

ProxySQL 方式
ProxySQL 方式负载均衡

五、Stream load 2PC使用方式

be.conf中配置disable_stream_load_2pc=false(重启生效)
并且 在 HEADER 中声明 two_phase_commit=true

1、修改配置文件

vim /opt/module/apache-doris-be-1.2.3-bin-x86_64/conf/be.conf
disable_stream_load_2pc=false

2、集群重启

cd /opt/module/ ./doris-cluster.sh restart

【参考】

Doris 部署 (CentOS 原生部署) 2
Doris 部署 (CentOS 原生部署) 2 | 海牛部落 高品质的 大数据技术社区
Doris官网安装部署
安装与部署 - Apache Doris
Doris集群环境搭建
Doris集群环境搭建_doris集群搭建_潮浪之巅的博客-CSDN博客
Centos设置时间同步
Centos设置时间同步 - 马永猛 - 博客园
centos7等各操作系统实现ntp时钟同步 - 码农教程

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值