【Doris的安装与部署】

news2024/9/24 1:18:38

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.coloradmin.cn/o/1678118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法练习day4

前言 中间个人原因断了很久,现在回来继续。。。。 两两交换链表中的节点 代码随想录 两两交换链表中的节点 24. 两两交换链表中的节点 - 力扣(LeetCode) (用时:0.3小时) 思路 这道题的思路其实很简单…

[数据结构]红黑树的原理及其实现

文章目录 红黑树的特性红黑树的时间复杂度推导:结论红黑树与AVL树比较 红黑树的插入红黑树的节点定义调整策略思考情况2:思考情况3: 代码实现myBTRee.htest.cpp 红黑树的特性 红黑树最常用的平衡二叉搜索树。跟AVL树不同的是,红黑…

OpenAI 推出革命性新模型 GPT-4o:全能AI的新纪元

GPT-4o 模型的推出预示着人工智能领域的又一次飞跃,它将如何改变我们的世界? 在人工智能的快速发展浪潮中,OpenAI 再次站在了技术革新的前沿。2024年5月14日,OpenAI 宣布了其最新旗舰模型 GPT-4o,这不仅是一个简单的版…

GitHub操作

远程库-GitHub GitHub网址 GitHub是全球最大的远程库 1. 创建远程库 2. 远程仓库操作 2.1 创建远程仓库别名 git remote -v 查看当前所有远程库地址别名 git remote add 别名 远程地址 设置远程库地址别名 案例操作 起一个别名会出现两个别名,是因为既可以拉取…

艺人百度百科怎么创建

创建艺人百度百科是一个相对复杂的过程,需要遵循一定的步骤和规则。以下是百科优化网yajje整理的艺人百度百科创建指南: 了解百度百科的创建流程 在创建艺人百度百科页面之前,首先需要了解百度百科的创建流程。可以通过访问百度百科的官方网…

uniapp如何打包预约上门按摩APP

uniapp如何打包预约上门按摩APP? 开发工具:HBuilderX 一、创建移动应用 1、 点击此处微信开放平台 2、点击【管理中心 - 移动应用 - 创建移动应用】填写资料后等待审核 app运行流程图 签名如何获取: 1)先把打包好的app安装在手…

防爆安检系统市场规模保持增长态势 行业将向智能化方向发展

防爆安检系统市场规模保持增长态势 行业将向智能化方向发展 防爆安检系统,是指为了防止爆炸物品及其他危险物品进入特定区域而设置的一套完整的设备系统,细分产品包括金属探测器、生物安全检测设备、爆炸物探测器等。防爆安检系统能够有效检测并识别出潜…

单文件组件,为什么要使用 SFC

介绍 Vue 的单文件组件 (即 *.vue 文件&#xff0c;英文 Single-File Component&#xff0c;简称 SFC) 是一种特殊的文件格式&#xff0c;使我们能够将一个 Vue 组件的模板、逻辑与样式封装在单个文件中。下面是一个单文件组件的示例&#xff1a; <script setup> impor…

【Qt】之【CMake】Error : The source.. does not match the soused

QT中cmak编译出现CMake Error: The source… does not match the soused 分析 前提是该项目是从另一个路径的项目复制过来的&#xff0c;编写代码时发现无论怎样修改代码&#xff0c;运行后都没有任何变化&#xff0c;以为是qtbug&#xff0c;重构重启都没用&#xff0c;最后…

Spring注解驱动开发

1、Spring注解驱动开发图解

旅游集市数仓建设

旅游集市数仓建设 小白如何从0到1成为大数据工程师 目录 旅游集市数仓建设 1.上传数据 2.可能用到的UDF函数 3.创建所需数据库及表 1&#xff09;ODS层 ①ods_oidd ②ods_wcdr ③ods_ddr ④ods_dpi 2&#xff09;DWD层 ①dwd_res_regn_mergelocation_msk_d ②dwm_s…

2024年5月面试知识点梳理

2024年5月面试知识点梳理 资料来源Java基础泛型注解异常反射SPI机制Java集合CollectionMap 并发基础线程并发关键字并发集合Lock核心类并发集合核心类原子类核心类线程池核心类ScheduledThreadPoolExecutorForkJoinPoolFokJoinTask JUC原子类: CAS, Unsafe和原子类详解JUC 工具…

【Linux】linux | 配置系统日志 | 安全日志 | 操作日志 | 登录日志

一、诉求 1、linux服务器开启日志功能&#xff0c;并记录10个月的登录 二、操作 1、进入目录 cd /etc 2、编辑配置 vi logrotate.conf 3、复制配置 /var/log/wtmp {monthlycreate 0664 root utmpminsize 1Mrotate 10 }/var/log/btmp {missingokmonthlycreate 0600 root …

多客陪玩系统,陪玩系统源码,线下搭子,爆改家政整理师等功能,陪玩预约系统 定制化陪玩系统,陪玩软件APP小程序H5游戏陪玩成品软件源码

简述 陪玩系统源码是指一款游戏陪玩平台的程序代码。陪玩系统通常是一个在线平台&#xff0c;可以让用户通过该平台找到愿意为他们提供游戏陪玩服务的人员&#xff0c;从而帮助他们在游戏中取得更好的成绩。这种系统通常包括客户端和服务器端两个部分&#xff0c;客户端用于用…

【强训笔记】day23

NO.1 思路&#xff1a;直接计算结果&#xff0c;先计算怪物可以抗几次攻击&#xff0c;再计算勇士受到的伤害&#xff0c;如果勇士的攻击力大于等于怪物的血量&#xff0c;那么就可以击杀无数只&#xff0c;如果勇士的血量正好是受到攻击的整数倍&#xff0c;那么击杀的怪物数…

服务攻防——应用协议软件,设备平台

向日葵利用 vnc利用5900端口 当为none就可以直接连接&#xff0c;而其他几种密码也能破解 可以使用hydna来尝试爆破 teamviewer(cve2020-13699) 让对方点击这个网站&#xff0c;就会 触发 zabbix 端口10051 cve2020 手工 点击这个 找到cookie 然后不需要密码就能进…

手心经常出汗、多汗是怎么回事?

点击文末领取揿针的视频教程跟直播讲解 手心爱出汗是一种怎样的体验&#xff1f; 手握着鼠标&#xff0c;一会儿就变得湿漉漉&#xff0c;小心翼翼拿着手机&#xff0c;防止它从满是汗的手掌滑出去……其实手心总出汗可能是一种病。 很多人都有手掌心出汗的症状。如果年轻健康…

【leetcode面试经典150题】-26. 删除有序数组中的重复项

26. 删除有序数组中的重复项 1 题目介绍1 个人解题思路1.1 解题代码1.2 思路解析 2、分析官方题解2.1 快慢双指针 1 题目介绍 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新…

佛山信息学真题 桂城-2021-五年级1.2

一、两位数&#xff08;GC4091&#xff09; GC4091 GC.2021.五年级.01.两位数http://43.139.152.26/d/DH_Trial/p/GC4091 题目描述 小明正在思考一个数学问题&#xff1a;有一个两位数&#xff0c;它的十位数大于等于个位数。现已知它的十位数和个位数之和为a&#xff0c;十位…

在pycharm添加pyqt5外部工具插件

一&#xff1a;查看环境所在位置以及安装pyqt5库 1、打开anaconda&#xff0c;输入以下命令&#xff0c;查看环境名&#xff0c;以及环境所在位置。 conda info --envs 从图中得知以下信息&#xff0c;下面根据自己实际情况&#xff0c;记住环境名和路径 ①环境名是&#xf…