众客华禹

 找回密码
立即注册

QQ登录

只需一步,快速开始

查看: 532|回复: 0

Centos7部署Apache doris集群

[复制链接]

70

主题

70

帖子

378

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
378
发表于 2022-1-24 14:41:52 | 显示全部楼层 |阅读模式
一、产品简单介绍
1、doris简介
Doris(原百度 Palo)是一款基于大规模并行处理技术的分布式 SQL 数据库。Doris主要集成了谷歌Mesa和Apache Impala技术,基于一个面向列的存储引擎,可以通过MySQL客户端进行通信,非常容易上手,使用上和mysql一样。
2、产品定位
1)MPP 架构的关系型分析数据库:mpp(Massively Parallel Processor)大规模并行处理
2)PB 级别大数据集,秒级/毫秒级查询
3)主要用于多维分析和报表查询
3、使用场景

4、Doris整体架构

5、架构非常简单,doris主要组件有三个
FE(Frontend): 即 Doris 的前端节点。主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。
BE(Backend): 即 Doris 的后端节点。主要负责数据存储与管理、查询计划执行等工作。
Broker: Broker 是 Doris 集群中一种可选进程,主要用于支持 Doris 读写远端存储上的文件和目录,如 HDFS、BOS
和 AFS 等。
二、docker编译doris
1、拉镜像

  1. docker pull apache/incubator-doris:build-env-1.4.1
复制代码
2、启动容器
  1. docker run -it -d -v /data/chenmenglin01/doris/doris-0.15/local/.m2:/root/.m2 -v /data/chenmenglin01/doris/doris-0.15/local/incubator-doris-DORIS-0.15-release/:/root/incubator-doris-DORIS-0.15-release/ apache/incubator-doris:build-env-1.4.1
复制代码
3、进入目录
  1. cd  /data/chenmenglin01/doris/doris-0.15/local/incubator-doris-DORIS-0.15-release/
  2. wget https://dist.apache.org/repos/dist/dev/incubator/doris/0.15/0.15.0-rc04/apache-doris-0.15.0-incubating-src.tar.gz
  3. or
  4. wget https://dist.apache.org/repos/dist/dev/incubator/doris/xxx.tar.gz
  5. or
  6. git clone https://github.com/apache/incubator-doris.git
复制代码
4、解压
  1. tar -zxvf apache-doris-0.15.0-incubating-src.tar.gz
复制代码
5、进入容器
  1. docker exec -it brave_satoshi /bin/bash
  2. cd /root/incubator-doris-DORIS-0.15-release/apache-doris-0.15.0-incubating-src
复制代码
6、mvn生成本地缓存仓库,以免多次下载依赖
运行命令行
  1. mvn help:effective-settings
复制代码
如果你没有做任何特殊配置的话,等下载完jar包后 ,这里的 就是本地仓库了,一般为/root/.m2/repository、
7、修改使用的jdk版本
在 build-env-1.3.1 的docker镜像中,同时包含了 OpenJDK 8 和 OpenJDK 11,并且默认使用 OpenJDK 11 编译。请确保编译使用的 JDK 版本和运行时使用的 JDK 版本一致,否则会导致非预期的运行错误。你可以使用在进入编译镜像的容器后,使用以下命令切换默认 JDK 版本:
  1. 切换到 JDK 8:
  2. $ alternatives --set java java-1.8.0-openjdk.x86_64
  3. $ alternatives --set javac java-1.8.0-openjdk.x86_64
  4. $ export JAVA_HOME=/usr/lib/jvm/java-1.8.0
  5. 切换到 JDK 11:
  6. $ alternatives --set java java-11-openjdk.x86_64
  7. $ alternatives --set javac java-11-openjdk.x86_64
  8. $ export JAVA_HOME=/usr/lib/jvm/java-11
复制代码
8、进入doris源码的路径,进入fe文件夹中修改pom.xml,将pluginRepositories字段中的spring-plugins插件
%E5%88%A0%E9%99%A4%E6%8F%92%E4%BB%B6.png
9、编译 Doris
  1. sh build.sh
复制代码
注意:
如果你使用的是 build-env-1.4.1 这个环境,第一次编译的时候要使用如下命令:
  1. sh build.sh –clean –be –fe –ui
复制代码
这是因为1.4.1 版本镜像升级了 thrift(0.9 -> 0.13),需要通过 –clean 命令强制使用新版本的 thrift 生成代码文件,否则会出现不兼容的代码。
编译完成后,产出文件在 output/ 目录中。
三、部署doris集群
1、部署准备

  1. #关闭防火墙
  2. systemctl stop firewalld
  3. systemctl disable firewalld

  4. #关闭selinux
  5. sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
  6. setenforce 0  # 临时

  7. #关闭swap
  8. swapoff -a  # 临时
  9. sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

  10. #在master添加hosts
  11. cat >> /etc/hosts << EOF
  12. 192.168.100.12 doris01
  13. 192.168.100.13 doris02
  14. 192.168.100.14 doris03 EOF

  15. #时间同步
  16. yum install -y chrony
  17. vim /etc/chrony.conf
  18. systemctl restart chronyd
  19. systemctl enable chronyd
  20. timedatectl set-timezone Asia/Shanghai
  21. chronyc sources

  22. #修改文件描述符
  23. echo 'ulimit -n 65535' >> /etc/profile; source /etc/profile

  24. 单独查看文件描述符:
  25. ulimit -n
  26. 1024

  27. 当前终端环境的fd限制修改,仅限于本终端:
  28. ulimit -n 65535

  29. 查看系统最大文件描述符:
  30. cat /proc/sys/fs/file-max
  31. 190948

  32. 查看系统当前使用的描述符:
  33. cat /proc/sys/fs/file-nr
  34. 5440    0       190948

  35. 安装jdk
  36. tar -zxvf jdk-8u251-linux-x64.tar.gz
  37. mv jdk1.8.0_251  /usr/local/

  38. vim /etc/profile
  39. export  JAVA_HOME=/usr/local/jdk1.8.0_251
  40. PATH=$PATH:$JAVA_HOME/bin:/usr/local/bin/
复制代码
2、将output中的fe和be打包之后欧拷贝到doris集群节点的其它路径下
  1. cp -r output/ /data/
复制代码
3、解压fe文件夹,进入conf文件夹,修改fe.conf
配置 FE:
       1)配置文件为 conf/fe.conf。其中注意:meta_dir是元数据存放位置。默认值为 ${DORIS_HOME}/doris-meta。需手动创建该目录。
注意:生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置
       2)fe.conf中JAVA_OPTS默认java最大堆内存为4GB,建议生产环境调整至8G以上。
# 采用CIDR的格式,10.197.83.26是fe所在机器的对外IP,需要priority_networks的值只能获取到宿主机上的一个固定IP
  1. 默认:
  2. http_port = 8030
  3. rpc_port = 9020
  4. query_port = 9030
  5. edit_log_port = 9010

  6. 修改后:
  7. priority_networks = 10.197.83.26/30         
  8. http_port = 8531
  9. rpc_port = 9021
  10. query_port = 8631
  11. edit_log_port = 9011
复制代码
4、启动fe(先只启动第一台,后面的会加入)
  1. sh bin/start_fe.sh --daemon
复制代码
5、解压be文件夹,修改be的配置文件
  1. priority_networks = 10.197.83.26/30
  2. be_port = 9061
  3. webserver_port = 8541
  4. heartbeat_service_port = 9051
  5. brpc_port = 8561
复制代码
6、启动be
  1. sh bin/start_be.sh --daemon
复制代码
7、从前端访问fe和be
  1. fe:[url=http://10.197.83.26:8531/]http://10.197.83.26:8531/[/url]
  2. be:[url=http://10.197.83.26:8541/]http://10.197.83.26:8541/[/url]
复制代码
账号:root 密码:无
8、安装mysql客户端前,卸载centos7自带的mariadb
  1. rpm -qa|grep mariadb
  2. rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
复制代码
9、安装mysql客户端
  1. rpm -ivh *.rpm
复制代码
10、从mysql访问fe
  1. 1)连接fe: mysql -h 10.197.83.26 -P 8631 -uroot
  2. 2)更改root的密码: set password for 'root' = PASSWORD('Zwy.com123!');
  3. 3)添加be: ALTER SYSTEM ADD BACKEND "10.197.83.26:9051"
  4. 4)查看fe: show proc '/frontends'G;
  5. // 此时10.197.83.26这台机器的fe的isMaster项应该显示是true,即是leader节点
  6. 5)查看be: show proc '/backends' G;
复制代码
11、添加其他fe节点
登录其他fe节点机器,修改fe的配置,然后启动fe
  1. ./bin/start_fe.sh --helper 192.168.100.12:9011 --daemon
复制代码
此时不需要再单独设置fe的密码,它会和第一台机器的密码相同,其中helper后面跟的是第一台机器的IP地址以及fe的edit_log_port端口;
12、启动be
  1. sh bin/start_be.sh --daemon
复制代码
14、登录第一台机器上的fe来添加后面两个fe和be
  1. ALTER SYSTEM ADD FOLLOWER "192.168.100.13:9011";
  2. ALTER SYSTEM ADD BACKEND  "192.168.100.13:9051";
复制代码
15、查看状态
  1. show proc '/frontends'G;
  2. *************************** 1. row ***************************
  3.              Name: 192.168.100.12_9011_1639300521681
  4.                IP: 192.168.100.12
  5.          HostName: doris01
  6.       EditLogPort: 9011
  7.          HttpPort: 8531
  8.         QueryPort: 8631
  9.           RpcPort: 9021
  10.              Role: FOLLOWER
  11.          IsMaster: true
  12.         ClusterId: 339723260
  13.              Join: true
  14.             Alive: true
  15. ReplayedJournalId: 1186
  16.     LastHeartbeat: 2021-12-12 19:00:15
  17.          IsHelper: true
  18.            ErrMsg:
  19.           Version: 0.15.0-rc04-Unknown
  20. CurrentConnected: Yes
  21. *************************** 2. row ***************************
  22.              Name: 192.168.100.13_9011_1639304895592
  23.                IP: 192.168.100.13
  24.          HostName: doris02
  25.       EditLogPort: 9011
  26.          HttpPort: 8531
  27.         QueryPort: 8631
  28.           RpcPort: 9021
  29.              Role: FOLLOWER
  30.          IsMaster: false
  31.         ClusterId: 339723260
  32.              Join: true
  33.             Alive: true
  34. ReplayedJournalId: 1185
  35.     LastHeartbeat: 2021-12-12 19:00:15
  36.          IsHelper: true
  37.            ErrMsg:
  38.           Version: 0.15.0-rc04-Unknown
  39. CurrentConnected: No
  40. *************************** 3. row ***************************
  41.              Name: 192.168.100.14_9011_1639304898810
  42.                IP: 192.168.100.14
  43.          HostName: doris03
  44.       EditLogPort: 9011
  45.          HttpPort: 8531
  46.         QueryPort: 8631
  47.           RpcPort: 9021
  48.              Role: FOLLOWER
  49.          IsMaster: false
  50.         ClusterId: 339723260
  51.              Join: true
  52.             Alive: true
  53. ReplayedJournalId: 1185
  54.     LastHeartbeat: 2021-12-12 19:00:15
  55.          IsHelper: true
  56.            ErrMsg:
  57.           Version: 0.15.0-rc04-Unknown
  58. CurrentConnected: No

  59. show proc '/backends' G;
  60. *************************** 1. row ***************************
  61.             BackendId: 11001
  62.               Cluster: default_cluster
  63.                    IP: 192.168.100.12
  64.              HostName: doris01
  65.         HeartbeatPort: 9051
  66.                BePort: 9061
  67.              HttpPort: 8541
  68.              BrpcPort: 8561
  69.         LastStartTime: 2021-12-12 18:19:42
  70.         LastHeartbeat: 2021-12-12 19:00:50
  71.                 Alive: true
  72. SystemDecommissioned: false
  73. ClusterDecommissioned: false
  74.             TabletNum: 0
  75.      DataUsedCapacity: 0.000
  76.         AvailCapacity: 80.571 GB
  77.         TotalCapacity: 99.951 GB
  78.               UsedPct: 19.39 %
  79.        MaxDiskUsedPct: 19.39 %
  80.                   Tag: {"location" : "default"}
  81.                ErrMsg:
  82.               Version: 0.15.0-rc04-Unknown
  83.                Status: {"lastSuccessReportTabletsTime":"2021-12-12 19:00:48","lastStreamLoadTime":-1}
  84. *************************** 2. row ***************************
  85.             BackendId: 11002
  86.               Cluster: default_cluster
  87.                    IP: 192.168.100.13
  88.              HostName: doris02
  89.         HeartbeatPort: 9051
  90.                BePort: 9061
  91.              HttpPort: 8541
  92.              BrpcPort: 8561
  93.         LastStartTime: 2021-12-12 18:56:31
  94.         LastHeartbeat: 2021-12-12 19:00:50
  95.                 Alive: true
  96. SystemDecommissioned: false
  97. ClusterDecommissioned: false
  98.             TabletNum: 0
  99.      DataUsedCapacity: 0.000
  100.         AvailCapacity: 85.599 GB
  101.         TotalCapacity: 99.951 GB
  102.               UsedPct: 14.36 %
  103.        MaxDiskUsedPct: 14.36 %
  104.                   Tag: {"location" : "default"}
  105.                ErrMsg:
  106.               Version: 0.15.0-rc04-Unknown
  107.                Status: {"lastSuccessReportTabletsTime":"2021-12-12 19:00:46","lastStreamLoadTime":-1}
  108. *************************** 3. row ***************************
  109.             BackendId: 11003
  110.               Cluster: default_cluster
  111.                    IP: 192.168.100.14
  112.              HostName: doris03
  113.         HeartbeatPort: 9051
  114.                BePort: 9061
  115.              HttpPort: 8541
  116.              BrpcPort: 8561
  117.         LastStartTime: 2021-12-12 18:58:42
  118.         LastHeartbeat: 2021-12-12 19:00:50
  119.                 Alive: true
  120. SystemDecommissioned: false
  121. ClusterDecommissioned: false
  122.             TabletNum: 0
  123.      DataUsedCapacity: 0.000
  124.         AvailCapacity: 97.838 GB
  125.         TotalCapacity: 99.951 GB
  126.               UsedPct: 2.11 %
  127.        MaxDiskUsedPct: 2.11 %
  128.                   Tag: {"location" : "default"}
  129.                ErrMsg:
  130.               Version: 0.15.0-rc04-Unknown
  131.                Status: {"lastSuccessReportTabletsTime":"2021-12-12 18:59:55","lastStreamLoadTime":-1}
  132. 3 rows in set (0.01 sec)
复制代码

Doris%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84-300x158.png
%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF-300x128.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|众客华禹 ( 蜀ICP备2021016660号 )

GMT+8, 2022-5-17 09:02 , Processed in 0.051311 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表