百度数据仓库Palo Doris版安装部署往这看!(上)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 百度数据仓库Palo Doris版安装部署往这看!

数据仓库Palo Doris版是基于Apache Doris(百度自研的分析型数据库引擎)构建的企业级MPP云数据仓库,Palo Doris版全面兼容MySQL协议,提供快捷查询UI,易于使用;支持高并发低延时查询,支持PB级以上的超大数据集,可有效地支持在线实时数据分析。


废话不多说,直接开更!!!


获取安装包

Doris 的安装包即编译后产生的二进制文件。主要包括 FE、BE、BROKER 以及其他扩展程序。

用户可以直接使用预编译好的安装包,或者自行从源码编译获取。

获取预编译安装包

预编译安装包是由百度 Doris 开发团队提供的基于 Doris 三位版本的预编译版本。该版本已在 centos7 上验证运行通过,用户可以下载对应版本后,直接解压运行。

下载地址请前往 预编译版本 下载。

从源码编译

用户也可以自行从源码编译获取安装包。

因为 Doris 源码编译依赖大量第三方组件库,而在不同系统环境下编译这些第三方组件库可能会产生诸多问题。因此这里我们仅介绍通过 Docker 编译镜像 进行 Doris 源码编译的方式。如需自行编译第三方组件库,请前往 本地编译 文档参考。

说明:Docker 编译镜像仅仅是 Doris 源码编译环境,并不是 Doris 的运行环境。镜像中已经内置了编译所需的所有工具和已编译好的第三方依赖库。基于镜像编译产出的安装包可以部署运行于物理机、虚机、Docker等各种环境中。

   1. 下载 Doris 源码

  • Baidu Doris 仓库 下载三位迭代版本(推荐
    百度 Doris 提供了基于 Apache Release 版本的 3 为快速迭代版本。这些版本已经在百度内部业务上大规模上线使用,相较于 Apache Release 版本,Bug 修复速度更快,稳定性相对更高。并且该版本与 Apache Release 版本完全兼容,推荐使用。
  • Apache Github 下载 Apache Release 版本
    这里是 Apache Doris Github 仓库,可以直接下载 tag 源码包,会通过 git clone 下载代码仓库。
  • Apache SVN 下载 Apache Release 版本
    这里是 Apache 官方 SVN 仓库,可以下载 Release 版本源码并进行签名校验。
  1. 2. 下载 Docker 编译环境镜像
  • 请先确保已安装 Docker。CentOS 用户通过以下命令快速安装 Docker:
yum -y install docker-io
service docker start
  • 下载 Docker 编译镜像:
docker pull apachedoris/doris-dev:build-env-1.2
docker pull apachedoris/doris-dev:build-env-1.3

注: 针对不同的 Doris 版本,需要下载对应的镜像版本

镜像版本 commit id doris 版本
apachedoris/doris-dev:build-env-1.2 4ef5a8c 0.12.x, 0.13
apachedoris/doris-dev:build-env-1.3 ad67dd3 0.14.x 或更新版本

注意: Doris 0.14.0 版本仍然使用apachedoris/doris-dev:build-env-1.2 编译,之后的代码将使用apachedoris/doris-dev:build-env-1.3

  1. 3. 运行镜像
  • 运行一下命令挂载源码路径并进入容器。
docker run -it -v /local/path/to/.m2:/root/.m2/ -v /local/path/to/doris-src/:/root/doris apachedoris/doris-dev:build-env-1.2
  • 这里我们假设本地 Doris 源码路径为 /local/path/to/doris-src/,并将容器内的 /root/doris 路径挂载到宿主机的源码路径。同时这里将镜像中 maven 的 .m2 目录 /root/.m2/ 挂载到宿主机对应的 .m2 目录 /local/path/to/.m2,以防止每次启动镜像编译时,重复下载 maven 的依赖库。
  1. 4. 编译 Doris
  • 在容器内进入源码目录,执行:
$ sh build.sh
  • 编译完成后,产出文件在 output/ 目录中。


安装与部署


该章节主要介绍了部署 Doris 所需软硬件环境、建议的部署方式、集群扩容缩容,以及集群搭建到运行过程中的常见问题。

在阅读本章节前,请先根据编译文档编译 Doris。

软硬件需求

Linux 操作系统版本需求

Linux 系统 版本
CentOS 7.1 及以上
Ubuntu 16.04 及以上

软件需求

软件 版本
Java 1.8 及以上

开发测试环境

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

生产环境

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

注1:

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

注2:FE 节点的数量

  1. FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统称 Follower。
  2. FE 节点数据至少为1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
  3. Follower 的数量必须为奇数,Observer 数量随意。
  4. 根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 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 混部,需注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。

Broker 部署

Broker 是用于访问外部数据源(如 hdfs、对象存储)的进程。通常,在每台机器上部署一个 broker 实例即可。

网络需求

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

实例名称 端口名称 默认端口 通讯方向 说明
BE be_port 9060 FE --> BE BE 上 thrift server 的端口,用于接收来自 FE 的请求
BE webserver_port 8040 BE <--> BE BE 上的 http server 的端口
BE heartbeat_service_port 9050 FE --> BE BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
BE brpc_port* 8060 FE<-->BE, BE <--> BE BE 上的 brpc 端口,用于 BE 之间通讯
FE http_port * 8030 FE <--> FE,用户 FE 上的 http server 端口
FE rpc_port 9020 BE --> FE, FE <--> FE FE 上的 thrift server 端口,每个fe的配置需要保持一致
FE query_port 9030 用户 FE 上的 mysql server 端口
FE edit_log_port 9010 FE <--> FE FE 上的 bdbje 之间通信用的端口
Broker broker_ipc_port 8000 FE --> Broker, BE --> Broker Broker 上的 thrift server,用于接收请求

注:

  1. 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
  2. 部署前请确保各个端口在应有方向上的访问权限。

IP 绑定

因为有多网卡的存在,或因为安装过 docker 等环境导致的虚拟网卡的存在,同一个主机可能存在多个不同的 ip。当前 Doris 并不能自动识别可用 IP。所以当遇到部署主机上有多个 IP 时,必须通过 priority_networks 配置项来强制指定正确的 IP。

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

priority_networks=10.1.3.0/24

这是一种 CIDR 的表示方法。FE 或 BE 会根据这个配置项来寻找匹配的IP,作为自己的 localIP。

注意:当配置完 priority_networks 并启动 FE 或 BE 后,只是保证了 FE 或 BE 自身的 IP 进行了正确的绑定。而在使用 ADD BACKEND 或 ADD FRONTEND 语句中,也需要指定和 priority_networks 配置匹配的 IP,否则集群无法建立。举例:

BE 的配置为:priority_networks=10.1.3.0/24

但是在 ADD BACKEND 时使用的是:ALTER SYSTEM ADD BACKEND "192.168.0.1:9050";

则 FE 和 BE 将无法正常通信。

这时,必须 DROP 掉这个添加错误的 BE,重新使用正确的 IP 执行 ADD BACKEND。

FE 同理。

BROKER 当前没有,也不需要 priority_networks 这个选项。Broker 的服务默认绑定在 0.0.0.0 上。只需在 ADD BROKER 时,执行正确可访问的 BROKER IP 即可。

文件句柄数

Doris BE 节点运行时要求系统文件句柄数大于 65535。可以通过 ulimit -n 命令查看。

如需修改,可打开 /etc/security/limits.conf

#End of file 之前加⼊如下两行:

* soft nofile 65535
* hard nofile 65535

集群部署

FE 部署

  • 拷贝 FE 部署文件到指定节点
    将源码编译生成的 output 下的 fe 文件夹拷贝到 FE 的节点指定部署路径下。
  • 配置 FE
  • 1.    配置文件为 conf/fe.conf。其中注意:meta_dir:元数据存放位置。默认在 fe/doris-meta/ 下。需手动创建该目录。
  • 2.    fe.conf 中 JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。
  • 启动FE
    sh bin/start_fe.sh --daemon
    FE进程启动进入后台执行。日志默认存放在 fe/log/ 目录下。如启动失败,可以通过查看 fe/log/fe.log 或者 fe/log/fe.out 查看错误信息。
  • 如需部署多 FE,请参见之后的 "FE 扩容和缩容" 章节。

BE 部署

  • 拷贝 BE 部署文件到所有要部署 BE 的节点
    将源码编译生成的 output 下的 be 文件夹拷贝到 BE 的节点的指定部署路径下。
  • 修改所有 BE 的配置
    修改 be/conf/be.conf。主要是配置 storage_root_path:数据存放目录。默认在be/storage下,需要手动创建该目录。多个路径之间使用 ; 分隔(最后一个目录后不要加 ;)。
  • 启动 BE
    sh bin/start_be.sh --daemon
    BE 进程将启动并进入后台执行。日志默认存放在 be/log/ 目录下。如启动失败,可以通过查看 be/log/be.log 或者 be/log/be.out 查看错误信息。
    这时,BE 启动后并未加入集群,而是出于等待 FE 心跳的状态,需继续执行之后的步骤。
  • 在 FE 中添加所有 BE 节点
    BE 节点需要先在 FE 中添加,才可加入集群。可以使用 mysql-client 连接到 FE:
    ./mysql-client -h host -P port -uroot
    其中 host 为 FE 所在节点 ip;port 为 fe/conf/fe.conf 中的 query_port;默认使用 root 账户,无密码登录。
    登录后,执行以下命令来添加每一个 BE:
    ALTER SYSTEM ADD BACKEND "host:port";
    其中 host 为 BE 所在节点 ip;port 为 be/conf/be.conf 中的 heartbeat_service_port。
  • 查看BE状态
    使用 mysql-client 连接到 FE,并执行 SHOW PROC '/backends'; 查看 BE 运行情况。如一切正常,isAlive 列应为 true

Broker 部署(可选)

Broker 是独立的进程,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,Broker 是无状态的,建议每一个节点都部署一个 Broker。

  • 拷贝源码 fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点上。建议和 BE 或者 FE 目录保持同级。
  • 修改相应 Broker 配置
    在相应 broker/conf/ 目录下对应的配置文件中,可以修改相应配置。
  • 启动 Broker
    sh bin/start_broker.sh --daemon 启动 Broker。
  • 添加 Broker
    要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节点列表。
    使用 mysql-client 连接启动的 FE,执行以下命令:
    ALTER SYSTEM ADD BROKER broker_name "host1:port1","host2:port2",...;
    其中 host 为 Broker 所在节点 ip;port 为 Broker 配置文件中的 broker_ipc_port。broker_name 为自定义名称。
  • 查看 Broker 状态
    使用 mysql-client 连接任一已启动的 FE,执行以下命令查看 Broker 状态:SHOW PROC "/brokers";

注:在生产环境中,所有实例都应使用守护进程启动,以保证进程退出后,会被自动拉起,如 Supervisord

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9月前
|
SQL 存储 分布式计算
关于数据仓库的Hive的安装部署的远程模式
在数据分析和数据挖掘领域,数据仓库是一个非常重要的工具。Hive是阿里云提供的一个开源数据仓库解决方案,它基于Hadoop和HiveQL语言,可以帮助用户轻松地处理大规模数据。在本文中,我们将探讨Hive的安装部署以及远程模式的概念和优势。
160 1
|
9月前
|
SQL 存储 分布式计算
关于数据仓库的Hive的安装部署的Local模式
在数据分析和数据挖掘领域,数据仓库是一个非常重要的工具。Hive是阿里云提供的一个开源数据仓库解决方案,它基于Hadoop和HiveQL语言,可以帮助用户轻松地处理大规模数据。在本文中,我们将探讨Hive的安装部署以及Local模式的概念和优势。
133 2
|
9月前
|
SQL 存储 分布式计算
关于数据仓库的Hive的安装部署的内嵌模式
在数据分析和数据挖掘领域,数据仓库是一个非常重要的工具。Hive是阿里云提供的一个开源数据仓库解决方案,它基于Hadoop和HiveQL语言,可以帮助用户轻松地处理大规模数据。在本文中,我们将探讨Hive的安装部署以及内嵌模式的概念和优势。
158 2
|
负载均衡 安全 关系型数据库
百度数据仓库Palo Doris版安装部署往这看!(下)
百度数据仓库Palo Doris版安装部署往这看!
212 0
|
5天前
|
SQL Cloud Native 数据挖掘
云原生数据仓库产品使用合集之在使用 ADB 进行数据分析处理时,出现分区倾斜的情况,如何解决
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之如何使用ADB MySQL湖仓版声纹特征提取服务
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5天前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库产品使用合集之阿里云云原生数据仓库AnalyticDB PostgreSQL版的重分布时间主要取决的是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之ADB MySQL湖仓版和 StarRocks 的使用场景区别,或者 ADB 对比 StarRocks 的优劣势
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5天前
|
运维 Cloud Native 关系型数据库
云原生数据仓库产品使用合集之原生数据仓库AnalyticDB PostgreSQL版如果是列存表的话, adb支持通过根据某个字段做upsert吗
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之在云数据仓库ADB中,GROUP BY操作中出现NULL值,如何解决
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。

热门文章

最新文章