基於Ansible實現Apache Doris快速部署運維指南

張家鋒發表於2022-04-20

Doris Ansible 使用指南

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

相關文章