Apache Doris安裝部署手冊

1 docker部署

1.1 安裝docker基礎環境

1.1.1 卸載舊版本(如果安裝過舊版本的話)

此處采用在線安裝的方式:

sudo yum remove docker  docker-common docker-selinux docker-engine  
1.1.2 安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.1.3 設置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.1.4 可以查看所有倉庫中所有docker版本,并選擇特定版本安裝
yum list docker-ce --showduplicates | sort -r
1.1.5 安裝docker
sudo yum install docker-ce  #由于repo中默認只開啟stable倉庫,故這里安裝的是最新穩定版
sudo yum install docker-ce-18.03.1.ce   #或者直接指定版本
1.1.6 啟動并加入開機啟動
sudo systemctl start docker
sudo systemctl enable docker
1.1.7 驗證安裝是否成功
docker version

有client和server兩部分表示docker安裝啟動都成功了

1.1.8 網絡需求

Doris 各個實例直接通過網絡進行通訊。以下表格展示了所有需要的端口(端口可根據實際情況修改)

實例名稱 端口名稱 默認端口 通訊方向 說明
BE be_port 9060 FE –> BE BE 上 thrift server 的端口,用于接收來自 FE 的請求
BE webserver_port 8040 BE <–> BE BE 上的 http server 的端口
BE heartbeat_service_port 9050 FE –> BE BE 上心跳服務端口(thrift),用于接收來自 FE 的心跳
BE brpc_port* 8060 FE<–>BE, BE <–> BE BE 上的 brpc 端口,用于 BE 之間通訊
FE http_port * 8030 FE <–> FE,用戶 FE 上的 http server 端口
FE rpc_port 9020 BE –> FE, FE <–> FE FE 上的 thrift server 端口,每個fe的配置需要保持一致
FE query_port 9030 用戶 FE 上的 mysql server 端口
FE edit_log_port 9010 FE <–> FE FE 上的 bdbje 之間通信用的端口
Broker broker_ipc_port 8000 FE –> Broker, BE –> Broker Broker 上的 thrift server,用于接收請求

注:

  1. 當部署多個 FE 實例時,要保證 FE 的 http_port 配置相同。
  1. 部署前請確保各個端口在應有方向上的訪問權限。

1.2 部署步驟

1.2.1 配置主機hosts(可選)

我配置了四個節點

192.168.0.91 doris-node1

192.168.0.92 doris-node2

192.168.0.93 doris-node3

192.168.0.94 doris-node4
1.2.2 上傳doris鏡像和編譯好的doris源碼包到服務器,也可以直接在服務器進行編譯

doris鏡像:doris_v1.tar.gz

doris源碼包:Doris_源碼包.zip

注:doris官網會持續修復一些bug,所有需要定時關注并更新鏡像和源碼。

1.2.3 解壓源碼包
unzip Doris_源碼包.zip
1.2.4 導入鏡像
docker load -i doris_v1.tar.gz

注:這個鏡像可能有問題,如果不行可以直接下載官網的鏡像:

docker pull apachedoris/doris-dev:build-env-1.3

使用以上版本安裝會出現core dump的問題,這個系統的bug,目前已經修復,使用如下版本安裝沒有再出現類似問題:

0.14.0.tar.gz
docker pull apachedoris/doris-dev:build-env-1.2
1.2.5 逐個啟動容器
docker run -it --name doris-fe -v /home/Doris/incubator-doris/:/var/local/incubator-doris/  --network host --privileged doris:v1.1
或者
docker run -it --name doris-fe -v /home/incubator-doris/:/var/local/incubator-doris/  --network host --privileged apachedoris/doris-dev:build-env-1.3

doris-fe:容器名稱,fe和be的名稱可自行配置

/home/Doris/incubator-doris/:宿主機掛載目錄

/var/local/incubator-doris/:容器對應目錄

注:必須使用 host 網絡模式以確保 FE 和 BE,以及 BE 之間的連通性

1.2.6 同步時間

先查看時區是否正確,如果是UTC需要修改為CST

mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1.2.7 修改FE配置文件

進入容器

docker exec -it 【容器名稱/ID】 /bin/bash 
vi /var/local/incubator-doris/output/fe/conf/fe.conf

端口配置

http_port = 8130(端口沖突,將默認8030做了修改)
rpc_port = 9020
query_port = 9030
edit_log_port = 9110(端口沖突,將默認9010做了修改)

網絡配置

priority_networks = 192.168.0.0/16

docker 虛擬網卡的存在,同一個主機可能存在多個不同的 ip。當前 Doris 并不能自動識別可用 IP,必須通過 priority_networks 配置項來強制指定正確的 IP(BE同理)

存儲路徑(根據服務器實際情況進行配置)

meta_dir = ${DORIS_HOME}/doris-meta

注:此目錄需要手動創建

詳細配置參考:http://doris.apache.org/master/zh-CN/administrator-guide/config/fe_config.html

1.2.8 修改BE配置文件
vi /var/local/incubator-doris/output/be/conf/be.conf

端口配置

be_port = 9060
be_rpc_port = 9070
webserver_port = 8140(端口沖突,將默認8040做了修改)
heartbeat_service_port = 9050
brpc_port = 8060

網絡配置

priority_networks = 192.168.0.0/16

存儲路徑(根據服務器實際情況進行配置)

storage_root_path = /var/local/incubator-doris/output/be/data

注:此目錄需要手動創建

  • 描述:BE數據存儲的目錄,多目錄之間用;分隔。可以通過路徑區別存儲目錄的介質,HDD或SSD。可以添加容量限制在每個路徑的末尾,通過,隔開。 eg:storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris

    • 1./home/disk1/doris.HDD, 存儲限制為50GB, HDD;

    • 2./home/disk2/doris.SSD,存儲限制為1GB,SSD;

    • 3./home/disk2/doris,存儲限制為磁盤容量,默認為HDD

  • 默認值:${DORIS_HOME}

  • 實際上并不會去檢查使用的是什么存儲介質

詳細配置參考:http://doris.apache.org/master/zh-CN/administrator-guide/config/be_config.html

1.2.9 啟動FE
sh bin/start_fe.sh --daemon

daemon是后臺啟動的意思

通過mysql客戶端連接FE,mysql -h FE_HOST -P9030 -uroot

查看FE狀態

SHOW PROC '/frontends';
image-20210420180543358.png

單節點 FE 是最基本的一種部署方式。一個完整的 Doris 集群,至少需要一個 FE 節點。當只有一個 FE 節點時,這個節點的類型為 Follower,角色為 Master。

如果是集群需要添加FE,添加 FE 流程在https://github.com/apache/incubator-doris/wiki/Doris-Deploy-%26-Upgrade有詳細介紹,不再贅述。

通過 ALTER SYSTEM DROP FOLLOWER/OBSERVER 命令即可刪除對應類型的 FE。

逐一添加BE節點

ALTER SYSTEM ADD BACKEND "192.168.0.91:9050";

刪除節點使用DROPP

查看FE配置: http://192.168.0.92:8130/variable

1.2.10 啟動BE
sh bin/start_be.sh --daemon

查看BE狀態

SHOW PROC '/backends';
image-20210420180634301.png

查看BE配置: http://192.168.0.192:8140/variable

2 問題記錄

2.1 BE啟動失敗

2.1.1 服務資源不足

最開始在部署有CDH平臺的服務器上面部署Doris,服務器的cpu和內存資源都不夠導致BE經常掛掉,換了一臺新的服務器部署之后則可以正常啟動運行了。

2.1.2 存儲目錄沒有手動創建

如果存儲目錄沒有手動創建也會導致啟動失敗

2.1.3 修改最大文件句柄數(可選)

如果出現打開文件限制導致啟動失敗,可以修改最大文件句柄數

echo "* soft nofile 204800"  >> /etc/security/limits.conf
echo "* hard nofile 204800"  >> /etc/security/limits.conf
echo "* soft nproc 204800"  >> /etc/security/limits.conf
echo "* hard nproc 204800 "  >> /etc/security/limits.conf
echo   fs.file-max = 6553560  >> /etc/sysctl.conf

查看

cat /etc/security/limits.conf
cat /etc/sysctl.conf

3 數據導入

3.1 Stream load

用戶通過 HTTP 協議提交請求并攜帶原始數據創建導入。主要用于快速將本地文件或數據流中的數據導入到 Doris。導入命令同步返回導入結果。

注:分隔符根據實際情況修改,文本的內容不要帶單引號或者雙引號,doris會當成字符串和數據直接拼接在一起。比如mysql導出的csv或者txt文件需要全局替換去引號(數據量大的建議在導出的時候就設置去掉引號)。

參考:http://doris.apache.org/master/zh-CN/administrator-guide/load-data/load-manual.html#%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容