Apache Doris——安裝部署

前言

這里介紹如何通過二進(jìn)制安裝包方式,手動的一步步安裝Apache Doris。

如果你需要從 源碼 編譯安裝部署,參考 docker 編譯。

下面我們以部署一臺 FE 節(jié)點(diǎn)和一臺 BE節(jié)點(diǎn)為例來演示部署,正常情況 Doris 集群下我們建議至少要部署一個 FE 節(jié)點(diǎn)及三個 BE 節(jié)點(diǎn)。

注意:

  • 重要:doris支持單機(jī)部署和集群部署,集群部署時至少設(shè)置三副本
  • 說明:doris單機(jī)部署時,將BE和FE均在一臺機(jī)器上設(shè)置即可

一、環(huán)境準(zhǔn)備

在安裝部署之前,我們要確保安裝 Doris 的環(huán)境滿足一下要求:

硬件要求

  • 我們建議集群至少擁有兩臺物理機(jī)或者虛擬機(jī)。

  • FE 節(jié)點(diǎn)CPU 建議 8 核及以上,內(nèi)存 16G 及以上。

  • BE 節(jié)點(diǎn)CPU 建議 16 核及以上,內(nèi)存 64G 及以上。

  • BE 節(jié)點(diǎn) CPU 要支持 avx2 指令集,你可以通過 cat /proc/cpuinfo | grep avx2 命令查看,如果有返回結(jié)果表明 CPU 支持 avx2 指令集,如果沒有說明不支持,如果 CPU 不支持 avx2 請下載 X64 ( no avx2 ) 版本。

  • 各節(jié)點(diǎn)間建議萬兆網(wǎng)絡(luò)連通。

軟件及操作系統(tǒng)要求

  • 所有節(jié)點(diǎn)操作系統(tǒng)需要時 CentOS 7.x 版本或者 Ubuntu 16.04及以上版本

  • 在 FE 節(jié)點(diǎn)需安裝 JDK1.8 或者 JDK11(根據(jù)你下載的安裝包對應(yīng)的 JDK 或者你編譯的時候使用的 JDK 版本選擇)。

  • 安裝 MySQL 客戶端,建議 5.5 以上版本。

  • 所有節(jié)點(diǎn)之間要做時鐘同步

  • 設(shè)置系統(tǒng)最大打開文件句柄數(shù)

  • 關(guān)閉 Linux 交換分區(qū),避免交換內(nèi)存到虛擬內(nèi)存時對性能造成的影響

echo "0" > /proc/sys/vm/swappiness
echo "0" > /proc/sys/vm/overcommit_memory
sysctl -p

二、開始部署

2.1 部署 FE 節(jié)點(diǎn)

這里開始介紹如何安裝部署 FE。Doris FE 主要負(fù)責(zé)元數(shù)據(jù)管理、負(fù)責(zé)客戶端連接管理、SQL查詢規(guī)劃、調(diào)度等工作。

  • 修改可打開文件數(shù)
ulimit -n 65535

上述方式在重啟系統(tǒng)后失效

永久生效:修改配置文件: /etc/security/limits.conf 添加

* soft nofile 65535 
* hard nofile 65535 
* soft nproc 65535 
* hard nproc 65535

這種方法需要重啟機(jī)器才能生效(所有BE節(jié)點(diǎn)都需要進(jìn)行配置),否則啟動不成功, 日志報(bào)錯。

2.1.1 下載安裝包

直接下載編譯好的二進(jìn)制文件,進(jìn)行解壓。
https://doris.apache.org/zh-CN/download

[root@dev workspace]# wget  https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.4-rc01/apache-doris-be-1.1.4-bin-x86_64-noavx2.tar.gz

root@dev workspace]# tar -zxvf apache-doris-be-1.1.4-bin-x86_64-noavx2.tar.gz

2.1.2 配置 FE

  • 1、配置環(huán)境變量
vim /etc/profile

#DORIS_HOME
export DORIS_HOME=/usr/local/apache-doris-be-1.1.4
export PATH=:$DORIS_HOME/bin:$PATH
重新加載環(huán)境變量:source /etc/profile

進(jìn)入到 apache-doris-x.x.x/fe 目錄

cd /usr/local/apache-doris-be-1.1.4/fe

修改 FE 配置文件 conf/fe.conf ,這里我們主要修改兩個參數(shù):priority_networksmeta_dir ,如果你需要更多優(yōu)化配置,請參考 FE 參數(shù)配置說明,進(jìn)行調(diào)整。

  • 2、添加 priority_networks 參數(shù)

修改ip綁定(可選)如果機(jī)器有多個ip, 比如內(nèi)網(wǎng)外網(wǎng), 虛擬機(jī)docker等, 需要進(jìn)行ip綁定, 以便在配置集群時可以正確識別

priority_networks=192.168.10.0/24

注意:
這個參數(shù)我們在安裝的時候是必須要配置的,特別是當(dāng)一臺機(jī)器擁有多個IP地址的時候,我們要為 FE 指定唯一的IP地址。

  • 3、添加元數(shù)據(jù)目錄自定義目錄
    • 創(chuàng)建doris-mate
      其中注意:meta_dir:元數(shù)據(jù)存放位置。默認(rèn)在 fe/doris-meta/ 下。需手動創(chuàng)建該目錄
meta_dir=/usr/local/apache-doris-be-1.1.4/fe/doris-meta

注意:
這里你可以不配置,默認(rèn)是在你的Doris FE 安裝目錄下的 doris-meta,
如果你有 SSD 硬盤,建議這里目錄配置到 SSD 上,會獲取更好的性能
單獨(dú)配置元數(shù)據(jù)目錄,需要你提前創(chuàng)建好你指定的目錄

  • 4、修改fe.conf中的JAVA_OPTS
    fe.conf 中 JAVA_OPTS 默認(rèn) java 最大堆內(nèi)存為 4GB,建議生產(chǎn)環(huán)境調(diào)整至 8G 以上。

  • 5、將安裝目錄分發(fā)到另外兩臺節(jié)點(diǎn)

scp -r /usr/local/apache-doris-be-1.1.4/ node2:/usr/local/
scp -r /usr/local/apache-doris-be-1.1.4/ node3:/usr/local/

2.1.3 啟動FE

三臺機(jī)器分別啟動

sh /usr/local/apache-doris-be-1.1.4/fe/bin/start_fe.sh --daemon

或

./bin/start_fe.sh --daemon

日志默認(rèn)存放在 fe/log/ 目錄下

  • 1、查看 FE 運(yùn)行狀態(tài)
    FE 啟動成功之后,我們通過從 MySQL 客戶端連接 FE 查看 FE 的運(yùn)行狀態(tài),后續(xù)我們向集群中添加其他 FE 節(jié)點(diǎn)和 BE 節(jié)點(diǎn)也是通過這個操作完成。
mysql -uroot -P9030 -h127.0.0.1

注意:

  • 這里使用的 root 用戶是 doris 內(nèi)置的默認(rèn)用戶,也是超級管理員用戶,具體的用戶權(quán)限查看 權(quán)限管理
  • -P :這里是我們連接 Doris 的查詢端口,默認(rèn)端口是 9030,對應(yīng)的是fe.conf里的 query_port
  • -h : 這里是我們連接的 FE IP地址,如果你的客戶端和 FE 安裝在同一個節(jié)點(diǎn)可以使用127.0.0.1,這種也是 Doris 提供的如果你忘記 root 密碼,可以通過這種方式不需要密碼直接連接登錄,進(jìn)行對 root 密碼進(jìn)行重置
  • 2、執(zhí)行下面的命令查看 FE 運(yùn)行狀態(tài)
show frontends\G;

然后你可以看到類似下面的結(jié)果:

mysql> show frontends\G;
*************************** 1. row ***************************
             Name: 192.168.10.10_9010_1660549353220
               IP: 192.168.10.10
      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)
  • Role : 表示你的節(jié)點(diǎn)角色,如果你只有一個 FE 的時候,當(dāng)前節(jié)點(diǎn)角色是 Follower,

  • IsMaster:該值為true,說明這個節(jié)點(diǎn)是 FE 的主節(jié)點(diǎn)

  • alive : 該值為 true 說明該節(jié)點(diǎn)運(yùn)行正常

注意:

  • FE 分為 Leader,F(xiàn)ollower 和 Observer 三種角色
  • 默認(rèn)一個集群,只能有一個 Leader,可以有多個 Follower 和 Observer。
  • Leader 和 Follower 組成一個 Paxos 選舉組,如果 Leader 宕機(jī),則剩下的 Follower 會自動選出新的 Leader,保證寫入高可用。
  • Observer 同步 Leader 的數(shù)據(jù),但是不參加選舉。如果只部署一個 FE,則 FE 默認(rèn)就是 Leader。
  • 第一個啟動的 FE 自動成為 Leader,上面輸出可以看到IsMaster: true。在此基礎(chǔ)上,可以添加若干 Follower 和 Observer。

如果 MySQL 客戶端連接失敗,可以通過查看 log/fe.log 日志來查看發(fā)現(xiàn)問題。

如果第一次部署遇到任何意外的問題,都可以通過清空元數(shù)據(jù)目錄,然后重新啟動來重試。

驗(yàn)證 FE 啟動是否成功
可以通過一下三種方式驗(yàn)證 Doris FE 是否啟動成功:

  • 1、通過查看 fe/log/fe.out 文件,看到一下內(nèi)容表示啟動成功
  • 2、通過 jps 命令,我們可以看一個 PaloFe 進(jìn)程表示啟動成功,否是失敗
  • 我們也可以通過 Doris 提供的Web UI 來驗(yàn)證是否啟動成功,在瀏覽器里輸入 FE 的 IP 地址及端口(默認(rèn)8030,這個參數(shù)在 fe.conf 里的 http_port),可以看到登錄界面,使用默認(rèn)用戶 root 或者 admin 登錄,默認(rèn)密碼都是空。

FE 高可用部署

Doris FE 節(jié)點(diǎn)支持高可用(HA)部署,來保證實(shí)際使用中服務(wù)的高可用,具體可以參照 FE 彈性伸縮 ,通過添加 FE 節(jié)點(diǎn)的方式來完成。

雖然我們部署了多個 FE 來完成高可用,但是對于前端使用怎么做到無感知及 FE 的負(fù)載均衡,這塊可以具體參考 Doris FE 負(fù)載均衡。

停止 FE 節(jié)點(diǎn)

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

./bin/stop_fe.sh

2.2 配置BE

這里開始介紹如何安裝部署 BE。Doris BE 主要負(fù)責(zé) Doris 的數(shù)據(jù)存儲及 SQL 執(zhí)行計(jì)算工作,在一個服務(wù)器節(jié)點(diǎn)只能部署一個 BE 節(jié)點(diǎn)。

下載二進(jìn)制安裝包和FE一樣

2.2.1 配置 BE

進(jìn)入到 apache-doris-be-1.1.4/be 目錄

cd /usr/local/apache-doris-be-1.1.4/be

修改 FE 配置文件 conf/be.conf ,這里我們主要修改兩個參數(shù):priority_networks'storage_root ,如果你需要更多優(yōu)化配置,請參考 BE 參數(shù)配置說明,進(jìn)行調(diào)整。

  • 1、添加 priority_networks 參數(shù)
priority_networks=192.168.10.0/24

注意:
這個參數(shù)我們在安裝的時候是必須要配置的,特別是當(dāng)一臺機(jī)器擁有多個IP地址的時候,我們要為 BE 指定唯一的IP地址。

  • 2、配置 BE 數(shù)據(jù)存儲目錄
storage_root_path=/usr/local/apache-doris-be-1.1.4/be/doris-data-dir

注意:

  • 這里你可以不配置,默認(rèn)是在你的Doris BE 安裝目錄下的 storage,
  • 如果是多個磁盤,使用英文分號隔開
  • 存儲目錄在啟動 BE 之前要創(chuàng)建好,否則啟動失敗。
  • SSD 和 HDD 混合使用情況
  • 如果是 SSD 磁盤要在目錄后面加上.SSD,HDD磁盤在目錄后面加.HDD
    示例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 默認(rèn)為HDD
  • 不論HDD磁盤目錄還是SSD磁盤目錄,都無需添加后綴,storage_root_path參數(shù)里指定medium即可。(示例:storage_root_path=/home/disk1/doris,medium:hdd;/home/disk2/doris,medium:ssd
    • /home/disk1/doris,medium:hdd 表示存儲介質(zhì)是HDD;
    • /home/disk2/doris,medium:ssd 表示存儲介質(zhì)是SSD;

2.2.2 啟動 BE

在 BE 安裝目錄下執(zhí)行下面的命令,來完成 BE 的啟動。

sh /usr/local/apache-doris-be-1.1.4/be/bin/start_be.sh --daemon

./bin/start_be.sh --daemon

2.2.3 添加 BE 節(jié)點(diǎn)到集群

  • 1、通過 MySQL 客戶端將 BE 節(jié)點(diǎn)添加到集群中
ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";
  • 1、be_host_ip:這里是你 BE 的 IP 地址,和你在 be.conf 里的 priority_networks 匹配

  • 2、heartbeat_service_port:這里是你 BE 的心跳上報(bào)端口,和你在 be.conf 里的 heartbeat_service_port 匹配,默認(rèn)是 9050

  • 2、如果添加過程中出現(xiàn)錯誤,你可以通過下面的命令,將該 BE 節(jié)點(diǎn)從集群中移除

ALTER SYSTEM DECOMMISSION BACKEND "be_host_ip:heartbeat_service_port";
  • 3、也可以通過下面的命令進(jìn)行快速刪除(僅限新加加點(diǎn),生產(chǎn)慎用)
ALTER SYSTEM DROPP BACKEND "be_host_ip:heartbeat_service_port";
  • 4、查看 BE 節(jié)點(diǎn)運(yùn)行狀態(tài)
    你可以在 MySQL 命令行下執(zhí)行下面的命令查看 BE 的運(yùn)行狀態(tài)。
SHOW BACKENDS\G;

示例:

mysql> SHOW BACKENDS\G;
*************************** 1. row ***************************
            BackendId: 10003
              Cluster: default_cluster
                   IP: 192.168.10.10
        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)
  • Alive : true表示節(jié)點(diǎn)運(yùn)行正常
  • SystemDecommissioned: false 表示節(jié)點(diǎn)沒有執(zhí)行下線,如果執(zhí)行下線操作,這里顯示的是true

如果 BE 節(jié)點(diǎn)沒有正常加入到集群,請查看 BE 的 log/be.WARNING 日志獲取更多信息排查問題。

如果出現(xiàn)下面的信息。

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 這個配置有問題,請檢查后重新配置,然后執(zhí)行下面命令將 BE 節(jié)點(diǎn)從集群中刪除

ALTER SYSTEM DROPP BACKEND "be_host_ip:heartbeat_service_port";

然后配置好之后,清楚 BE 配置的存儲目錄下的所有數(shù)據(jù),重新啟動。在按照上面添加 BE節(jié)點(diǎn)到集群的部分將 BE 節(jié)點(diǎn)重新添加到集群中

2.2.4 停止 BE 節(jié)點(diǎn)

運(yùn)行以下命令可以停止 BE 節(jié)點(diǎn)

./bin/stop_be.sh 

三、FS_Broker 部署(可選)

Broker 以插件的形式,獨(dú)立于 Doris 部署。如果需要從第三方存儲系統(tǒng)導(dǎo)入數(shù)據(jù),需要部署相應(yīng)的 Broker,默認(rèn)提供了讀取 HDFS 、百度云 BOS 及 Amazon S3 的 fs_broker。fs_broker 是無狀態(tài)的,建議每一個 FE 和 BE 節(jié)點(diǎn)都部署一個 Broker。

  • 拷貝二進(jìn)制文件源碼 fs_broker 的 output 目錄下的相應(yīng) Broker 目錄到需要部署的所有節(jié)點(diǎn)上。建議和 BE 或者 FE 目錄保持同級。
  • 修改相應(yīng) Broker 配置
  • 在相應(yīng) broker/conf/ 目錄下對應(yīng)的配置文件中,可以修改相應(yīng)配置。
  • 啟動 Broker
sh bin/start_broker.sh --daemon
  • 添加 Broker
    要讓 Doris 的 FE 和 BE 知道 Broker 在哪些節(jié)點(diǎn)上,通過 sql 命令添加 Broker 節(jié)點(diǎn)列表。
    使用 mysql-client 連接啟動的 FE,執(zhí)行以下命令:
ALTER SYSTEM ADD BROKER broker_name "host1:port1","host2:port2",...;

其中 host 為 Broker 所在節(jié)點(diǎn) ip;port 為 Broker 配置文件中的 broker_ipc_port。

  • 查看 Broker 狀態(tài)
    使用 mysql-client 連接任一已啟動的 FE,執(zhí)行以下命令查看 Broker 狀態(tài):
SHOW PROC "/brokers";

在命令行中使用MySQL客戶端加入并查看:


[root@bigdata1 apache_hdfs_broker]# mysql -hbigdata1 -P9030 -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.0 Doris version 0.15.0-rc04-Unknown
 
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> ALTER SYSTEM ADD BROKER broker_name "bigdata1:8000","bigdata2:8000","bigdata3:8000";
Query OK, 0 rows affected (0.03 sec)
 
mysql> SHOW PROC "/brokers";
+-------------+----------------+----------+------+-------+---------------------+---------------------+--------+
| Name        | IP             | HostName | Port | Alive | LastStartTime       | LastUpdateTime      | ErrMsg |
+-------------+----------------+----------+------+-------+---------------------+---------------------+--------+
| broker_name | 192.168.12.131 | bigdata1 | 8000 | true  | 2022-01-28 17:35:20 | 2022-01-28 17:35:20 |        |
| broker_name | 192.168.12.132 | bigdata2 | 8000 | true  | 2022-01-28 17:35:20 | 2022-01-28 17:35:20 |        |
| broker_name | 192.168.12.133 | bigdata3 | 8000 | true  | 2022-01-28 17:35:20 | 2022-01-28 17:35:20 |        |
+-------------+----------------+----------+------+-------+---------------------+---------------------+--------+
3 rows in set (0.00 sec)

注意

在生產(chǎn)環(huán)境中,所有實(shí)例都應(yīng)使用守護(hù)進(jìn)程啟動,以保證進(jìn)程退出后,會被自動拉起,如 Supervisor (opens new window)。如需使用守護(hù)進(jìn)程啟動,在 0.9.0 及之前版本中,需要修改各個 start_xx.sh 腳本,去掉最后的 & 符號。從 0.10.0 版本開始,直接調(diào)用 sh start_xx.sh 啟動即可。

參考:
https://doris.apache.org/zh-CN/docs/summary/basic-summary

https://blog.csdn.net/hf200012/article/details/126618042

https://www.cnblogs.com/syw20170419/p/16704763.html

https://blog.csdn.net/yang_shibiao/article/details/122734347

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容