【Doris的安装与部署】

1 集群规划和环境准备

Doris作为一款MPP架构的OLAP数据库,可以在绝大多数主流的商用服务器上运行。

1.1 环境要求

一般推荐使用Linux系统,版本要求是CentOS 7.1及以上或者Ubuntu 16.04及以上,这也是目前服务器市场最主流的操作系统。

操作系统小知识

Linux系统主要分Debian系和Red Hat系,还有其他自由版本。Debian系主要有Debian、Ubuntu、Mint等及其衍生版本;Red Hat系主要有Red Hat、Fedora、CentOS等,其他自由版本有Slackware、Gentoo、Arch Linux、LFS、SUSE等。根据调查资料,2016年中国服务器操作系统市场中CentOS占28%,排名第一,Ubuntu占26%,Red Hat占19%,其余共占27%。其余版本中有部分是Debian系和Red Hat系,所以三类系统所占比例在75%以上。就目前来说,CentOS系统既免费,又稳定,也是云厂商推荐的服务器操作系统,因此首选CentOS 7.x版本。

虽然CentOS官方已经放弃8.0以后版本的升级维护,但是各软件、硬件厂商和云平台都会基于CentOS 7.x继续升级和提供相应的服务。在操作系统配置方面除了关闭Swap以外没有其他要求。关闭Swap只是为了避免使用磁盘缓冲区影响性能,并非强制性要求。在这一点上,比其他数据库安装前进行一系列参数调整和系统配置要省事很多。在Doris中,FE是基于Java语言开发的,BE是基于C++语言开发的,所以二者需要依赖对应语言的编译器。其中,Java运行环境要求JDK8及以上版本(从Doris 1.0版本开始强制要求JDK11及以上版本),C++运行环境要求GCC4.8.2及以上版本。

1.2 硬件要求

为了提高Doris数据库的性能,单台服务器也有硬件要求。

  • 开发和测试环境要求如下表:
模块CPU内存磁盘网络实例数量
FE8核+8GB+10GB+千兆网卡1
BE8核+16GB+50GB+千兆网卡1-3
  • 生产要求如下表:
模块CPU内存磁盘网络实例数量
FE16核+64GB+100GB+万兆网卡1-5
BE16核+64GB+100GB+万兆网卡10-100

具体来说,FE的磁盘空间主要用于存储元数据,包括元数据变更日志和元数据镜像版本,大小通常在几百兆字节到几吉字节不等。BE的磁盘空间主要用于存储用户数据,总磁盘空间按用户总数据量×3(3副本)计算,然后额外预留40%用于存储后台合并数据以及一些中间数据。

一台机器上可以部署多个BE实例,但是只能部署一个FE实例。如果需要3副本数据,至少需要3台机器各部署1个BE实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5s的时钟偏差)。

在测试环境中,可以仅用1个BE实例进行测试,但是1个BE实例只能创建1个副本数据。实际生产环境中,BE实例数量直接决定了集群整体查询性能。

1.3 节点规划

为了充分利用MPP架构的并发优势,以及Doris的高可用性,我们需要足够的服务器节点来支撑Doris的运行。Doris的性能与服务器数量及配置正相关。通常,建议部署10~100台服务器(其中3台部署FE,剩余的部署BE)。但在部署4台服务器(1台部署FE,3台部署BE,其中1台BE混部一个观察者角色的FE来提供元数据备份),以及服务器配置较低的情况下,Doris依然可以平稳运行。

如果FE和BE混部,我们需要注意资源竞争问题,并保证元数据目录和数据目录分属于不同磁盘。Broker是访问外部数据源(如HDFS)的进程。通常,每个FE节点上部署一个Broker实例即可。关于FE节点的角色,我们需要注意以下几点。

❑FE角色分为Leader、Follower和Observer。Leader和Follower角色都是Follower组的成员,以下统称为Follower。Leader是Follower组中选举出来的主节点,有且仅有一个。Observer即观察者角色,仅能复制元数据,不能参与Follower组的选举。
❑FE节点数至少为1(1个Follower)。部署1个Follower和1个Observer可以实现读高可用,部署3个Follower可以实现读写高可用。
❑Follower的数量必须为奇数,Observer的数量随意。
❑根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署3个Follower和1~3个Observer。如果是离线业务,建议部署1个Follower和1~3个Observer。

1.4 通信端口

Doris的各个实例之间通过网络进行通信,如下图展示了各服务组件的通信端口。
在这里插入图片描述
当部署多个FE实例时,要保证FE的http_port配置相同。部署前确保各个端口在应有方向上的访问权限:如果是局域网,建议直接关掉防火墙;如果是云平台,还需要开放客户端访问FE节点的8030端口和9030端口。

1.5 IP地址绑定

因为有多网卡情况,或安装过Docker等环境而存在虚拟网卡,同一个主机可能存在多个不同的IP。Doris启动时不能自动识别可用IP,因此当主机上存在多个IP时,必须通过priority_networks配置项强制指定正确的IP。

priority_networks是FE和BE都有的一个配置项,配置项需写在fe.conf和be.conf中。该配置项用于在FE或BE启动时,告诉进程应该绑定哪个IP,示例如下:

priority_networks= 192.168.1.200/24

这是一种CIDR(Classless Inter-Domain Routing,无类别域间路由)表示方法。FE或BE会根据该配置项来寻找匹配的IP,并将其作为本地IP。

注意

配置priority_networks,只是保证了FE或BE进行了正确的IP绑定。在ADD BACKEND或ADD FRONTEND语句中也需要指定和priority_networks配置匹配的IP,否则集群无法建立。

Broker则不需要配置priority_networks。Broker默认绑定在IP0.0.0.0上。在执行ADD BROKER语句时,只需要配置Broker可访问的IP即可。

2 安装和部署

到Palo官网进行下载。作为Apache Doris社区的主要维护团队,百度Doris团队同时维护了完全兼容Apache Doris的发行版本Palo。百度发行版本Palo具有Bug修复和新功能更新功能。百度开源版本不是Apache Release版本,但具有全部Apache Doris功能,并与Apache社区版本兼容。百度发行版本Palo在百度内部做过测试,推荐使用,而且用户可以免费下载,安装和部署方式同Apache Doris。

百度发行版本Palo下载地址为:http://palo.baidu.com/docs/下载专区/预编译版本下载/。下载页面截图如下图所示:
在这里插入图片描述

2.1 安装前的准备

在CentOS系统中通过wget命令下载百度Palo预编译版本,如下图:
在这里插入图片描述
解压:

tar -zxvf PALO-0.12.21-release.tar.gz 

重命名:

mv DORIS-0.12.21-release/ doris

2.2 安装FE

sh doris/fe/bin/start_fe.sh --daemon

由于FE是基于Java语言开发的,因此部署FE之前需要先安装JDK。正常情况下,安装Oracle JDK和Open JDK都可以,但是预编译版本文件是采用Oracle JDK编译的,所以我们依然采用Oracle JDK版本。Doris 1.0以前的版本只需安装JDK8版本即可,Doris 1.0及以后版本要求必须安装JDK11版本。

到Oracle官网下载JDK需要注册账号,并且登录速度比较慢,这里推荐到华为云下载。下载完成后解压,并将解压文件移到指定目录,配置环境变量。

FE组件的安装非常简单,最新Doris版本的安装包自动创建了doris-meta目录,我们可以直接到bin目录下执行命令sh start_fe.sh --daemon来启动FE。执行该命令后如果没有任何输出,FE启动成功。我们也可以通过jps命令验证FE是否启动成功,有PaloFe进程表示启动成功。

在正式环境中安装FE节点有以下注意事项:

❑FE节点的配置文件为fe/conf/fe.conf。
❑FE作为管理节点存放数据库的元数据,默认保存在fe/doris-meta/路径下。我们也可以通过调整fe.conf中的meta_dir切换到独立的目录。生产环境中强烈建议单独指定目录,不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好)。
❑fe.conf中JAVA_OPTS默认Java最大堆内存为4GB,生产环境中建议调整至8GB以上。
❑priority_networks配置可以具体参考1.5节内容。
❑默认第一个启动的是Leader角色,也就是Follower组中的主节点。

fe.conf重要参数说明lower_case_table_names参数用于配置用户表表名大小写是否敏感,默认为0,表示表名大小写敏感。该参数需在集群初始化时进行配置。集群初始化完成后无法通过set语句修改该参数,也无法通过重启、升级修改该参数。该参数还可以设置为1或者2,都表示表名大小写不敏感,区别是值为1时,任何场景下表名无论大小写都表示同一张表,而值为2时,同一语句中表名要么大写,要么小写。

FE节点的服务进程启动后进入后台执行,日志默认存放在fe/log/目录下。如果服务进程启动失败,我们可以通过日志文件fe/log/fe.log或者fe/log/fe.out查看错误信息。安装完FE节点后,我们有两种方式进行访问。

第一种是在网络无限制的情况下,直接打开网址http://fe_ip:8030,进入管理页面,如下图所示。
在这里插入图片描述
第二种方式是通过MySQL客户端访问。这里我们既可以直接在服务器上通过MySQL命令访问FE,也可以通过客户端软件配置JDBC访问,默认root密码为空。

2.3 安装BE

BE是由C++语言开发的,所以不需要安装其他依赖软件。BE安装过程和FE一样,也非常简单,直接进入bin目录执行sh start_be.sh --daemon命令即可。

在正式环境中安装BE节点,也有以下注意事项:

❑BE节点的配置文件为be/conf/be.conf。
❑BE作为数据的实际存储节点,需要大量存储空间,建议用可扩容的外挂磁盘。数据磁盘主要通过be.conf文件中的storage_root_path参数来配置。数据文件存储目录需要提前创建好,多个目录通过“;”来分隔。(注意:最后一个路径后面不需要分号。)
❑存储介质可以是HDD或SSD,并且可以限制每个目录的最大使用空间。

存储路径的配置有两种格式,具体如下。
方式一:通过在目录后面增加“.”和“,”分步追加磁盘类型和限制存储容量(默认单位是GB),例如:“storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,10;/home/disk3/doris”表示有3个盘,磁盘一/home/disk1/doris.HDD,50表示存储限制为50GB的HDD;磁盘二/home/disk2/doris.SSD 10表示存储限制为10GB的SSD;磁盘三/home/disk3/doris表示存储限制为磁盘最大容量,默认为HDD。方式二:在目录后面通过键值对区分存储类型和存储空间(默认单位也是GB),例如:storage_root_path=/home/disk1/doris,medium:hdd,capacity:50;/home/disk2/doris,medium:ssd,capacity:10;/home/disk3/doris,medium:hdd”表示的结果和方式一致。

2.4 安装Broker

Broker是访问外部数据源(如HDFS)的进程。通常,我们只在FE节点上部署Broker实例。Broker以插件的形式独立于Doris部署。如果从第三方存储系统导入数据,我们需要部署相应的Broker组件。Doris默认提供了读取HDFS和BOS源码的fs_broker。fs_broker是无状态的,建议每一个FE和BE节点都部署。

Broker安装过程如下。
1)修改相应Broker配置。在broker/conf/目录下对应的配置文件中可以修改相应配置。
2)启动Broker。用sh bin/start_broker.sh–daemon命令启动Broker。
3)添加Broker。要想让Doris的FE和BE知道Broker在哪些节点上,通过SQL命令添加Broker节点列表。使用mysql-client连接已启动的FE节点,命令如下:
在这里插入图片描述
其中,host为Broker节点对应的IP;port为Broker配置文件中broker_ipc_port对应的值。使用mysql-client连接已启动的FE节点,执行SHOW PROC“/brokers”命令查看Broker状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/702263.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技艺高超的魔法师:Java运算符

在Java编程的世界里,运算符是连接变量和表达式的关键纽带,它们使得程序能够执行计算、比较、赋值等一系列操作。 一,基本概念 1,运算符是什么? 运算符是操作变量的符号。 2,分类 Java中的主要运算符类…

Spring Boot实现多数据源快速入门

1.为什么需要多数据源? 多数据源既动态数据源,项目开发逐渐扩大,单个数据源、单一数据源已经无法满足需求项目的支撑需求。本文采用dynamic-datasource-spring-boot-starter实现多数据源, 主要特性 支持 数据源分组 &#xff0…

CheckStyle静态样式之道

优质博文:IT-BLOG-CN 在标准化的统一样式检查规范里,最为常用的统一样式工具是checkstyle插件,而不是国内阿里的代码规约插件。 【1】下载插件 【2】配置生效 配置生效及告警设置 【3】配置checkstyle.xml 官网地址 官网最新Releases 下面…

Node.js安装及环境配置(超详细!保姆级!!)

目录 一、进入官网地址下载安装包 二、安装程序 三、环境配置 四、测试 五、安装淘宝镜像 一、进入官网地址下载安装包 Node.js — Download Node.js (nodejs.org) 选择对应你系统的 node.js 版本,我选择的是Windows系统,64位 点击图中选项&#…

51单片机:点亮一个LED灯

1.新建工程 选择AT89C52&#xff0c;在Atmel下显示的是See Microchip 并不需要添加启动文件到文件夹中。 添加main.c文件&#xff0c;c比cpp效率高&#xff0c;.asm汇编即更底层 程序编写好后 nop(); 该函数在这个头文件里面 #include <INTRINS.H> #include <R…

ubuntu18.04 运行ur5机械臂

视觉抓取初探索1-UR5机械臂抓取仿真 - 知乎 抓取不止&#xff01;Ubuntu 18.04下UR5机械臂搭建Gazebo环境&#xff5c;开源分享_哔哩哔哩_bilibili 源码地址&#xff1a;GitHub - Geo-JTao/UR5_gripper_camera_gazebo: 在Ubantu18.04中搭建Gazebo仿真环境 遇到问题&#xff1…

Google Chrome 设备工具栏原理

1.不同预览模式 2.计算出缩放比 3.固定滚动偏移 关键代码&#xff1a; overview&#xff1a; ratioW getChildRect().width / getParentRect().width ratioH getChildRect().height / getParentRect().height maxRatio max(ratioW, ratioH) if(maxRatio < 1) return 1 …

21、G1分代回收究竟如何让传统方法黯然失色?

21.1、前文回顾 在上一篇文章中,我们详细解析了G1垃圾回收器的设计思想。其核心理念在于将内存分割为众多小的Region,并针对新生代和老年代各自分配一部分Region。在垃圾回收过程中,G1会优先挑选那些能实现最短停顿时间以及最多回收对象的Region,以尽可能确保达到预设的垃…

企业网站开发技术

随着互联网的快速发展&#xff0c;企业网站成为了企业宣传和推广的重要渠道之一。一个好的企业网站不仅可以提升企业的形象&#xff0c;还可以实现在线销售和客户服务等功能。那么&#xff0c;企业网站的开发技术有哪些呢&#xff1f;本文将从前端开发和后端开发两个方面进行讨…

InfluxDB学习之windows上安装inFluxDB

这里写目录标题 打开官网下载地址下载后解压如何启动&#xff1f;linux以及完整教程地址 打开官网下载地址 官网下载地址 如果出现注册提示&#xff0c;关闭掉就可以了&#xff0c;不用注册。下载地址就在下方。 下载后解压 解压后得到以下内容 如何启动&#xff1f; 我…

多点 Dmall x TiDB:出海多云多活架构下的 TiDB 运维实战

作者&#xff1a;多点&#xff0c;唐万民 导读 时隔 2 年&#xff0c; 在 TiDB 社区成都地区组织者冯光普老师的协助下&#xff0c;TiDB 社区线下地区活动再次来到成都。来自多点 Dmall 的国内数据库负责人唐万民老师&#xff0c;在《出海多云架构&#xff0c;多点 TiDB 运维…

Linux常用指令集合

ls显示目录文件 选项&#xff1a; -a 所有文件&#xff08;all所有&#xff09; -l 详细信息&#xff08;Information信息&#xff09;&#xff08;自动包含-1&#xff09; 所以常用 ll -1 一行只输出一个文件。 -R 列出所有子目录下的文件。…