Apache Doris 系列: 入门篇-安装部署

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Apache Doris 系列: 入门篇-安装部署

这里我们介绍如何通过二进制安装包方式,手动的一步步安装Apache Doris。


如果你需要从 源码 编译安装部署,参考 docker 编译


下面我们以部署一台 FE 节点和一台 BE节点为例来演示部署,正常情况 Doris 集群下我们建议至少要部署一个 FE 节点及三个 BE 节点。


环境准备


在安装部署之前,我们要确保安装 Doris 的环境满足一下要求:


  • 1.我们建议集群至少拥有两台物理机或者虚拟机。

  • 2.FE 节点CPU 建议 8 核及以上,内存 16G 及以上。

  • 3.BE 节点CPU 建议 16 核及以上,内存 64G 及以上。

  • 4.BE 节点 CPU 要支持 avx2 指令集,你可以通过 cat /proc/cpuinfo | grep avx2 命令查看,如果有返回结果表明 CPU 支持 avx2 指令集,如果没有说明不支持,如果 CPU 不支持 avx2 请下载 X64 ( no avx2 ) 版本。

  • 5.各节点间建议万兆网络连通。


软件及操作系统要求


  1. 1.所有节点操作系统需要时 CentOS 7.x 版本或者 Ubuntu 16.04及以上版本

  2. 2.在 FE 节点需安装 JDK1.8 或者 JDK11(根据你下载的安装包对应的 JDK 或者你编译的时候使用的 JDK 版本选择)。

  3. 3.安装 MySQL 客户端,建议 5.5 以上版本。

  4. 4.所有节点之间要做时钟同步

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

  6. 6.关闭 Linux 交换分区,避免交换内存到虚拟内存时对性能造成的影响

  7. echo "0" > /proc/sys/vm/swappiness

  8. echo "0" > /proc/sys/vm/overcommit_memory

  9. sysctl -p


开始部署


部署 FE 节点


这里我们开始介绍如何安装部署 FE。Doris FE 主要负责元数据管理、负责客户端连接管理、SQL查询规划、调度等工作。


下载安装包


下载 Doris 预编译好的二进制安装包,并解压到指定目录

tar zxf apache-doris-x.x.x.tar.gz

注意:这里是你下载的二进制安装包名称


配置 FE


我们进入到 apache-doris-x.x.x/fe 目录

cd apache-doris-x.x.x/fe

修改 FE 配置文件 conf/fe.conf ,这里我们主要修改两个参数:priority_networksmeta_dir ,如果你需要更多优化配置,请参考 FE 参数配置说明,进行调整。


  1. 1.添加 priority_networks 参数
priority_networks=172.23.16.0/24

注意:


这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 FE 指定唯一的IP地址。


  1. 添加元数据目录
meta_dir=/path/your/doris-meta

注意:


这里你可以不配置,默认是在你的Doris FE 安装目录下的 doris-meta,

如果你有 SSD 硬盘,建议这里目录配置到 SSD 上,会获取更好的性能

单独配置元数据目录,需要你提前创建好你指定的目录


  1. JAVA_HOME 配置

如果你已经在系统环境变量里设置了JAVA_HOME,这里可以不需要设置,或者你有多个 JDK 版本,需要单独指定,需要在这里配置,在 fe.conf 最前面加上下面的内容。

JAVA_HOME=/path/your/jdk_path

启动 FE


在 FE 安装目录下执行下面的命令,来完成 FE 的启动。

./bin/start_fe.sh --daemon

查看 FE 运行状态


FE 启动成功之后,我们通过从 MySQL 客户端连接 FE 查看 FE 的运行状态,后续我们向集群中添加其他 FE 节点和 BE 节点也是通过这个操作完成。

mysql -uroot -P9030 -h127.0.0.1

注意:


  1. 1.这里使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户,具体的用户权限查看 权限管理

  2. 2.-P :这里是我们连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port

  3. 3.-h : 这里是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用127.0.0.1,这种也是 Doris 提供的如果你忘记 root 密码,可以通过这种方式不需要密码直接连接登录,进行对 root 密码进行重置

执行下面的命令查看 FE 运行状态

show frontends\G;

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

mysql> show frontends\G;
*************************** 1\. row ***************************
             Name: 172.21.32.5_9010_1660549353220
               IP: 172.21.32.5
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 1685821635
             Join: true
            Alive: true
ReplayedJournalId: 49292
    LastHeartbeat: 2022-08-17 13:00:45
         IsHelper: true
           ErrMsg:
          Version: 1.1.2-rc03-ca55ac2
 CurrentConnected: Yes
1 row in set (0.03 sec)
  1. 1.Role : 表示你的节点角色,如果你只有一个 FE 的时候,当前节点角色是 Follower,

  2. 2.IsMaster:该值为true,说明这个节点是 FE 的主节点

  3. 3.alive : 该值为 true 说明该节点运行正常

注意:


  1. 1.FE 分为 Leader,Follower 和 Observer 三种角色

  2. 2.默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。

  3. 3.Leader 和 Follower 组成一个 Paxos 选举组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。

  4. 4.Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。

  5. 5.第一个启动的 FE 自动成为 Leader,上面输出可以看到IsMaster: true。在此基础上,可以添加若干 Follower 和 Observer。

如果 MySQL 客户端连接失败,可以通过查看 log/fe.log 日志来查看发现问题。


如果第一次部署遇到任何意外的问题,都可以通过清空元数据目录,然后重新启动来重试。


验证 FE 启动是否成功


可以通过一下三种方式验证 Doris FE 是否启动成功:


  1. 1.通过查看 fe/log/fe.out 文件,看到一下内容表示启动成功
2022-08-17 12:37:13,236 INFO (UNKNOWN 172.21.32.5_9010_1660549353220(-1)|1) [JettyWebServer.start():172] Jetty started on port(s) 8030 (http/1.1) with context path '/'
2022-08-17 12:37:13,249 INFO (UNKNOWN 172.21.32.5_9010_1660549353220(-1)|1) [StartupInfoLogger.logStarted():61] Started PaloFe in 2.396 seconds (JVM running for 7.33)
2022-08-17 12:37:13,260 INFO (UNKNOWN 172.21.32.5_9010_1660549353220(-1)|1) [NMysqlServer.start():70] Open mysql server success on 9030
2022-08-17 12:37:13,260 INFO (UNKNOWN 172.21.32.5_9010_1660549353220(-1)|1) [QeService.start():63] QE service start.
  1. 1.通过 jps 命令,我们可以看一个 PaloFe 进程表示启动成功,否是失败

  2. 2.我们也可以通过 Doris 提供的Web UI 来验证是否启动成功,在浏览器里输入 FE 的 IP 地址及端口(默认8030,这个参数在 fe.conf 里的 http_port),可以看到登录界面,使用默认用户 root 或者 admin 登录,默认密码都是空。

FE 高可用部署


Doris FE 节点支持高可用(HA)部署,来保证实际使用中服务的高可用,具体可以参照 FE 弹性伸缩 ,通过添加 FE 节点的方式来完成。


虽然我们部署了多个 FE 来完成高可用,但是对于前端使用怎么做到无感知及 FE 的负载均衡,这块可以具体参考 Doris FE 负载均衡


停止 FE 节点


Doris FE 的停止可以通过下面的命令完成

./bin/stop_fe.sh

部署 BE 节点


这里我们开始介绍如何安装部署 BE。Doris BE 主要负责 Doris 的数据存储及 SQL 执行计算工作,在一个服务器节点只能部署一个 BE 节点。


这里我们示例是指安装一个 BE 节点,安装其他的 BE 节点操作是同样的。


下载安装包


下载 Doris 预编译好的二进制安装包,并解压到指定目录

tar zxf apache-doris-x.x.x.tar.gz

注意:这里是你下载的二进制安装包名称


配置 BE


我们进入到 apache-doris-x.x.x/be 目录

cd apache-doris-x.x.x/be

修改 FE 配置文件 conf/be.conf ,这里我们主要修改两个参数:priority_networks'storage_root ,如果你需要更多优化配置,请参考 BE 参数配置说明,进行调整。


  1. 1.添加 priority_networks 参数
priority_networks=172.23.16.0/24

注意:


这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 BE 指定唯一的IP地址。


  1. 1.配置 BE 数据存储目录
storage_root_path=/path/your/doris-data-dir
  1. 1.如果是多个磁盘,使用英文分号隔开

  2. 2.存储目录在启动 BE 之前要创建好,否则启动失败。

  3. 3.SSD 和 HDD 混合使用情况

  4. 4.如果是 SSD 磁盘要在目录后面加上.SSD,HDD磁盘在目录后面加.HDD

  5. 示例:
  6. storage_root_path=/home/disk1/doris.HDD;/home/disk2/doris.SSD;/home/disk2/doris

  • /home/disk1/doris.HDD 表示 HDD磁盘 ;

  • /home/disk2/doris.SSD 表示 SSD 磁盘;

  • /home/disk2/doris 默认为HDD

  1. 1.不论HDD磁盘目录还是SSD磁盘目录,都无需添加后缀,storage_root_path参数里指定medium即可。(

  2. 示例:storage_root_path=/home/disk1/doris,medium:hdd;/home/disk2/doris,medium:ssd

  • /home/disk1/doris,medium:hdd 表示存储介质是HDD;

  • /home/disk2/doris,medium:ssd 表示存储介质是SSD;

启动 BE


在 BE 安装目录下执行下面的命令,来完成 BE 的启动。

./bin/start_be.sh --daemon

添加 BE 节点到集群


通过 MySQL 客户端将 BE 节点添加到集群中

ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";
  1. 1.be_host_ip:这里是你 BE 的 IP 地址,和你在 be.conf 里的 priority_networks 匹配

  2. 2.heartbeat_service_port:这里是你 BE 的心跳上报端口,和你在 be.conf 里的 heartbeat_service_port 匹配,默认是 9050


如果添加过程中出现错误,你可以通过下面的命令,将该 BE 节点从集群中移除

ALTER SYSTEM DECOMMISSION BACKEND "be_host_ip:heartbeat_service_port";

也可以通过下面的命令进行快速删除(仅限新加加点,生产慎用

ALTER SYSTEM DROPP BACKEND "be_host_ip:heartbeat_service_port";

查看 BE 节点运行状态


你可以在 MySQL 命令行下执行下面的命令查看 BE 的运行状态。

SHOW BACKENDS\G;

示例:

mysql> SHOW BACKENDS\G;
*************************** 1\. row ***************************
            BackendId: 10003
              Cluster: default_cluster
                   IP: 172.21.32.5
        HeartbeatPort: 9050
               BePort: 9060
             HttpPort: 8040
             BrpcPort: 8060
        LastStartTime: 2022-08-16 15:31:37
        LastHeartbeat: 2022-08-17 13:33:17
                Alive: true
 SystemDecommissioned: false
ClusterDecommissioned: false
            TabletNum: 170
     DataUsedCapacity: 985.787 KB
        AvailCapacity: 782.729 GB
        TotalCapacity: 984.180 GB
              UsedPct: 20.47 %
       MaxDiskUsedPct: 20.47 %
                  Tag: {"location" : "default"}
               ErrMsg:
              Version: 1.1.2-rc03-ca55ac2
               Status: {"lastSuccessReportTabletsTime":"2022-08-17 13:33:05","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false}
1 row in set (0.01 sec)

1.Alive : true表示节点运行正常


2.SystemDecommissioned: false 表示节点没有执行下线,如果执行下线操作,这里显示的是true


如果 BE 节点没有正常加入到集群,请查看 BE 的 log/be.WARNING 日志获取更多信息排查问题。


如果出现下面的信息。

W0817 12:37:01.090358 11126 task_worker_pool.cpp:1598] report TASK failed. status: 0, master host: 127.0.0.1, port:9020

说明 priority_networks 这个配置有问题,请检查后重新配置,然后执行下面命令将 BE 节点从集群中删除

ALTER SYSTEM DROPP BACKEND "be_host_ip:heartbeat_service_port";

然后配置好之后,清楚 BE 配置的存储目录下的所有数据,重新启动。在按照上面添加 BE节点到集群的部分将 BE 节点重新添加到集群中


停止 BE 节点


运行以下命令可以停止 BE 节点

./bin/stop_be.sh 

至此我们安装部署完成,下一讲我们开始讲解怎么创建 Doris 数据表

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
1天前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。
|
1月前
|
存储 SQL 数据管理
阿里云数据库 SelectDB 内核 Apache Doris 如何基于自增列满足高效字典编码等典型场景需求|Deep Dive 系列
自增列的实现,使得 Apache Doris 可以在处理大规模时展示出更高的稳定性和可靠性。通过自增列,用户能够高效进行字典编码,显著提升了字符串精确去重以及查询的性能。使用自增列作为主键来存储明细数据,可以完美的解决明细数据更新的问题。同时,基于自增列,用户可以实现高效的分页机制,轻松应对深分页场景,有效过滤掉大量非必需数据,从而减轻数据库的负载压力,为用户带来了更加流畅和高效的数据处理体验。
|
1月前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
|
1月前
|
监控 测试技术 Linux
性能工具之 Apache Bench 入门使用
ab 全称为:apache bench,ab 为小型压力工具,对于在 Linux 中简单压测 HTTP 接口轻巧灵活。
24 1
|
1月前
|
SQL 分布式计算 HIVE
Apache Hudi入门指南(含代码示例)
Apache Hudi入门指南(含代码示例)
61 0
|
1月前
|
分布式计算 Apache 调度
Apache Hudi 异步Compaction部署方式汇总
Apache Hudi 异步Compaction部署方式汇总
34 0
|
1月前
|
运维 Cloud Native Apache
云计算新宠:探索Apache Doris的云原生策略
云计算新宠:探索Apache Doris的云原生策略
36 2
|
1月前
|
存储 数据采集 Apache
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
随着业务在金融、保险和商城领域的不断扩展,众安保险建设 CDP 平台以提供自动化营销数据支持。早期 CDP 平台依赖于 Spark + Impala + Hbase + Nebula 复杂的技术组合,这不仅导致数据分析形成数据孤岛,还带来高昂的管理及维护成本。为解决该问题,众安保险引入 Apache Doris,替换了早期复杂的技术组合,不仅降低了系统的复杂性,打破了数据孤岛,更提升了数据处理的效率。
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍

热门文章

最新文章

推荐镜像

更多