草庐IT

基于Ansible实现Apache Doris快速部署运维指南

张家锋 2023-03-28 原文

Apache Doris 介绍

Apache Doris是一个现代化的MPP分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。Apache Doris的分布式架构非常简洁,易于运维,并且可以支持10PB以上的超大数据集。

Apache Doris可以满足多种数据分析需求,例如固定历史报表,实时数据分析,交互式数据分析和探索式数据分析等。令您的数据分析工作更加简单高效!

Doris Ansible简介

Doris_ansible是基于ansible构建的Doris高可用集群轻量化自动运维工具,它能够在本地方便快捷的一键拉起Doris高可用集群,并且集群的启停、升降级、扩缩容都可以通过一条简单的命令来实现,使用户可以将注意力专注于Doris强大的分析能力,而不用在运维上面耗费心力。后续将会增加更多使用者关注的自动化功能。如监控、运维巡检等一系列功能。

Doris Ansible使用步骤

前置基础

1. 安装ansible

yum install -y ansible

2. 下载Doris_Ansible

git clone https://github.com/mklzl/doris_ansible

3. 集群规划(无需配置,仅作参考)

# fe
master : 192.168.1.241
follower1: 192.168.1.239
follower2: 192.168.2.243

# be
backend1: 192.168.1.239
backend2: 192.168.1.241
backend3: 192.168.1.243

# broker
broker1: 192.168.1.239
broker2: 192.168.1.241
broker3: 192.168.1.243

# 安装版本及软件包所在位置
/home/doris_ansible/PALO-0.15.1-rc09-binary.tar.gz

# 安装目录
/home/doris_ansible

# 升降级软件包所在路径
/home/doris_ansible/PALO-0.15.3-
release-binary.tar.gz

开始使用

1. 配置集群初始化配置

  • 分配集群角色hosts

    vi /etc/ansible/hosts(cluster1为对应Doris集群的集群id,这里可以部署多个不同的集群配置,启动时,指定对应的集群ID即可操作对应的集群)

      ## 集群cluster1中参与的机器ip
      [cluster1.doris_hosts]
      192.168.1.239
      192.168.1.241
      192.168.1.243
    
      ##集群cluster1中fe所在机器的ip
      [cluster1.frontends]
      192.168.1.239
      192.168.1.241
      192.168.1.243
    
      ##集群cluster1中master节点所在的ip
      [cluster1.master]
      192.168.1.241
    
      ##集群cluster1中follower所在节点的ip
      [cluster1.follower]
      192.168.1.239
      192.168.1.243
    
      ##集群cluster1中be所在节点的ip
      [cluster1.backends]
      192.168.1.239
      192.168.1.241
      192.168.1.243
      
      ## 要进行扩缩容的fe所在的ip
      [cluster1.scale_fe]
      192.168.1.239
    
      ## 要进行扩缩容的be所在的ip
      [cluster1.scale_be]
      192.168.1.239
       
      ## 要进行扩缩容的broker所在的ip
      [cluster1.scale_broker]
      192.168.1.239
    
      ##集群cluster1中broker节点所在的ip
      [cluster1.brokers]
      192.168.1.239
      192.168.1.241
      192.168.1.243
    
  • 配置初始化文件

    vi ./conf/cluster1.yml(这里配置集群cluster1的对应ip组)
    
    ---
    follower: [192.168.1.239,192.168.1.243]
    backends: [192.168.1.239,192.168.1.241,192.168.1.243]
    brokers: [192.168.1.239,192.168.1.241,192.168.1.243]
    master: 192.168.1.241
    
    vi ./conf/setup_vars.yml
    ---
    # 生产环境的fe.conf所在路径。
    # 如果没有特殊配置,建议使用安装包内的fe.conf,请根据机器情况酌情配置priority_networks
    fe_conf_path: /home/doris_ansible/fe.conf
    
    #生产环境的be.conf所在路径。
    # 如果没有特殊配置,建议使用安装包内的be.conf,请根据机器情况酌情配置priority_networks
    be_conf_path: /home/doris_ansible/be.conf
    
    # heartbeat_service_port,请和be.conf中的heartbeat_service_port配置保持一致
    heartbeat_service_port: 9050
    
    
    # edit_log_port,请和fe.conf中的edit_log_port配置保持一致
    edit_log_port: 9010
    
    # query_port,请和fe.conf中的query_port配置保持一致
    query_port: 9030
    
    # broker_ipc_port,请和apache_hdfs_broker.conf中的broker_ipc_port保持一致
    broker_ipc_port: 8000
    
    # 待安装的doris压缩包所在路径,请写绝对路径
    doris_filepath: /home/doris_ansible/PALO-0.15.1-rc09-binary.tar.gz
    
    # doris压缩包要解压安装的位置
    dest_filepath: /home/doris_ansible
    
    #解压后,doris的安装目录
    doris_home: /home/doris_ansible/PALO-0.15.1-rc09-binary
    
    # 机器java_home所在路径,请确保所有机器保持一致
    java_home: /usr/java/jdk1.8.0_131
    
    
    

2. 初始化集群

#cluster=cluster1 是指定的对对应集群的操作
ansible-playbook -e "cluster=cluster1" ./core/setup.yml 

3. 添加角色

ansible-playbook -e "cluster=cluster1" ./core/add_roles.yml

4. 启停集群

#一键停止对应集群
ansible-playbook -e "cluster=cluster1" ./core/stop_all.yml

#一键启动对应集群
ansible-playbook -e "cluster=cluster1" ./core/start_all.yml

5. 集群升降级

  • 配置集群升降级配置

    vi ./conf/upgrade_vars.yml
    ---
    #需要回滚或者升级的压缩包所在路径
    newdoris_filepath: /home/doris_ansible/PALO-0.15.3-release-binary.tar.gz
    
    #压缩包解压路径
    newdoris_destpath: /home/doris_ansible
    
    #解压后的doirs_home
    newdoris_home: /home/doris_ansible/PALO-0.15.3-release-binary
    
    #java_home所在路径
    java_home: /usr/java/jdk1.8.0_131
    
  • 进行升降级操作

    ansible-playbook -e "cluster=cluster1" ./core/upgrade.yml
    

6. 集群扩缩容

  1. 配置集群扩缩容配置
vi /etc/ansible/hosts  (配置要进行扩缩容的角色的hosts,可以配置多个hosts)
## 要进行扩缩容的fe所在的ip
  [cluster1.scale_fe]
  192.168.1.239

  ## 要进行扩缩容的be所在的ip
  [cluster1.scale_be]
  192.168.1.239
   
  ## 要进行扩缩容的broker所在的ip
  [cluster1.scale_broker]
  192.168.1.239
  1. FE 扩缩容
  vi ./conf/scale_fe_vars.yml
  ---
  ## 要进行扩缩容的fe
  frontends: 192.168.1.239
  
  ##(多个ip使用数组的方式)
  frontends: [192.168.1.239,192.168.1.241]
  1. BE 扩缩容
 vi ./conf/scale_be_vars.yml
 ---
  ## 要进行扩缩容的be
  backends: 192.168.1.239
  
  ##(多个ip使用数组的方式)
  backends: [192.168.1.239,192.168.1.241]
  1. Broker 扩缩容
  vi ./conf/scale_broker_vars.yml
  ---
  ## 要进行扩缩容的broker
  brokers: 192.168.1.239
  
  ##(多个ip使用数组的方式)
  brokers: [192.168.1.239,192.168.1.241]
  1. 执行扩缩容
# 扩容
  # 扩容broker
    ansible-playbook -e "cluster=cluster1 action=out" ./core/scale_broker.yml
  # 扩容be
    ansible-playbook -e "cluster=cluster1 action=out" ./core/scale_be.yml
  # 扩容fe
    ansible-playbook -e "cluster=cluster1 action=out" ./core/scale_fe.yml
# 缩容
  #缩容broker
    ansible-playbook -e "cluster=cluster1 action=out" ./core/scale_broker.yml
  #缩容be
    ansible-playbook -e "cluster=cluster1 action=out" ./core/scale_be.yml
  #缩容fe
    ansible-playbook -e "cluster=cluster1 action=out" ./core/scale_fe.yml

有关基于Ansible实现Apache Doris快速部署运维指南的更多相关文章

  1. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  2. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  3. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  4. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  5. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  6. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  7. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  8. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  9. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  10. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

随机推荐