Doris系列2-Doris編譯和安裝

一.編譯前準備

1.1 環(huán)境準備

主機配置:

IP 主機名 部署
10.31.1.119 hp5 FE FS_Broker
10.31.1.120 hp6 BE FS_Broker
10.31.1.121 hp7 BE FS_Broker,FE Observer
10.31.1.122 hp8 BE FS_Broker

硬件配置:
每臺主機:CPU4核知押、內(nèi)存8G挖炬、硬盤150G

軟件版本:

名稱 版本
操作系統(tǒng) CentOS release 7.8 (Final) 64位
JDK 1.11
yum install -y java-11-openjdk-devel.x86_64  
ln -s /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64 /usr/lib/jvm/java11

vi /etc/profile
JAVA_HOME=/usr/lib/jvm/java11
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

source /etc/profile

1.2 安裝Docker

1.2.1 卸載舊版本

yum remove docker  docker-common docker-selinux docker-engine
image.png

1.2.2 安裝需要的軟件包

yum install -y yum-utils device-mapper-persistent-data lvm2

1.2.3 設置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
image.png

1.2.4 查看docker版本

yum list docker-ce --showduplicates | sort -r
image.png

1.2.5 安裝docker

yum install docker-ce
yum install <FQPN>  # 例如:yum install docker-ce-20.10.9
image.png

1.2.6 啟動并加入開機啟動

systemctl start docker
systemctl enable docker
image.png

1.2.7 驗證安裝是否成功

docker version
image.png

1.2.8 遷移docker

因為根目錄的空間不夠请梢,將docker遷移到/home目錄

systemctl stop dcoker
mkdir -p /home/docker
mv /var/lib/docker/* /home/docker/
mount --bind /home/docker/ /var/lib/docker

# 添加掛載命令至開機腳本
vi /etc/rc.local
mount --bind /home/docker/ /var/lib/docker

1.2.9 退出后重新進入docker

[root@hp7 /]# docker ps -a
CONTAINER ID   IMAGE                                    COMMAND       CREATED          STATUS                       PORTS     NAMES
4443aa0cb7b9   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   44 seconds ago   Exited (0) 36 seconds ago              hardcore_chaum
8c022367ed79   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   5 minutes ago    Exited (127) 5 minutes ago             lucid_jackson
07c7b65b7724   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   6 minutes ago    Exited (0) 6 minutes ago               modest_hugle
5faefc1a7ce7   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   4 hours ago      Exited (0) 2 minutes ago               infallible_boyd
1331eb39f288   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   4 hours ago      Exited (1) 4 hours ago                 dreamy_clarke
731942087dec   apache/incubator-doris:build-env-1.4.2   "/bin/bash"   3 days ago       Exited (0) 3 days ago                  sweet_wescoff
[root@hp7 /]# 
[root@hp7 /]# docker start 5faefc1a7ce7
5faefc1a7ce7
[root@hp7 /]# docker attach 5faefc1a7ce7
[root@5faefc1a7ce7 ~]# 
[root@5faefc1a7ce7 ~]# ll
total 8
-rw-------.  1 root root 3416 Nov 13  2020 anaconda-ks.cfg
drwxr-xr-x. 22 root root 4096 Dec  6 11:08 incubator-doris
drwxr-xr-x.  2 root root    6 Dec  6 09:54 incubator-doris-DORIS-x.x.x-release
[root@5faefc1a7ce7 ~]# 

二. 編譯

2.1 下載 Docker 鏡像

下載鏡像

docker pull apache/incubator-doris:build-env-1.4.2
image.png

檢查鏡像

docker images
image.png

2.2 運行鏡像

運行鏡像

docker run -it apache/incubator-doris:build-env-1.4.2

建議以掛載本地 Doris 源碼目錄的方式運行鏡像,這樣編譯的產(chǎn)出二進制文件會存儲在宿主機中皿伺,不會因為鏡像退出而消失寝贡。

同時悼吱,建議同時將鏡像中 maven 的 .m2 目錄掛載到宿主機目錄沸停,以防止每次啟動鏡像編譯時,重復下載 maven 的依賴庫疾宏。

docker run -it -v /root/.m2 -v /root/incubator-doris-DORIS-x.x.x-release/ apache/incubator-doris:build-env-1.4.2
image.png

2.3 下載源碼

啟動鏡像后张足,你應該已經(jīng)處于容器內(nèi)≡志猓可以通過以下命令下載 Doris 源碼(已掛載本地源碼目錄則不用):

git clone https://github.com/apache/incubator-doris.git
image.png

2.4 編譯 Doris

cd /root/incubator-doris
sh build.sh --clean --be --fe --ui
image.png

編譯完成后兢榨,產(chǎn)出文件在 output/ 目錄中


image.png

三. 安裝部署

3.1 安裝FE

3.1.1 拷貝FE部署文件

拷貝 FE 部署文件到hp5

scp -r ./fe root@10.31.1.119:/home/doris/

3.1.2 配置 FE

配置文件為 conf/fe.conf

  1. meta_dir是元數(shù)據(jù)存放位置。默認值為 ${DORIS_HOME}/doris-meta顺饮,我看已經(jīng)創(chuàng)建好了目錄吵聪。

  2. JAVA_OPTS 默認 java 最大堆內(nèi)存為 4GB,可以根據(jù)真實環(huán)境進行調(diào)整。

  3. priority_networks=10.31.1.0/24 如果主機有多個IP兼雄,doris沒辦法知道具體該綁定哪個IP吟逝,此時需要進行指定。

3.1.3 啟動FE

sh bin/start_fe.sh --daemon

FE進程啟動進入后臺執(zhí)行赦肋。日志默認存放在 log/ 目錄下块攒。如啟動失敗励稳,可以通過查看 log/fe.log 或者 log/fe.out 查看錯誤信息。

3.2 安裝BE

3.2.1 拷貝BE安裝文件

scp -r ./be root@10.31.1.120:/home/doris/  
scp -r ./be root@10.31.1.121:/home/doris/  
scp -r ./be root@10.31.1.122:/home/doris/  

以下步驟 hp6囱井、hp7驹尼、hp8三個節(jié)點BE節(jié)點均需要執(zhí)行:

3.2.2 修改所有 BE 的配置

修改 be/conf/be.conf

  1. 主要是配置 storage_root_path:數(shù)據(jù)存放目錄。默認在be/storage下庞呕,需要手動創(chuàng)建該目錄新翎。多個路徑之間使用英文狀態(tài)的分號 ; 分隔(最后一個目錄后不要加 ;)∽×罚可以通過路徑區(qū)別存儲目錄的介質(zhì)地啰,HDD或SSD〗补洌可以添加容量限制在每個路徑的末尾亏吝,通過英文狀態(tài)逗號,隔開。
  1. priority_networks=10.31.1.0/24 如果主機有多個IP盏混,doris沒辦法知道具體該綁定哪個IP蔚鸥,此時需要進行指定。

3.2.3 修改文件句柄數(shù)據(jù)

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

-- 修改 /etc/sysctl.conf, 加入這個設置
echo   fs.file-max = 6553560  >> /etc/sysctl.conf

ulimit -u 60000

source /etc/profile

3.2.4 在 FE 中添加所有 BE 節(jié)點

-- 其中 host 為 FE 所在節(jié)點 ip许赃;port 為 fe/conf/fe.conf 中的 query_port株茶;默認使用 root 賬戶,無密碼登錄图焰。
mysql -uroot -p -h10.31.1.119 -P9030
-- 其中 host 為 BE 所在節(jié)點 ip;port 為 be/conf/be.conf 中的 heartbeat_service_port蹦掐。
ALTER SYSTEM ADD BACKEND "10.31.1.120:9050";
image.png

3.2.5 啟動BE

sh bin/start_be.sh --daemon

查看 BE 運行情況技羔。如一切正常,isAlive 列應為 true卧抗。


image.png

最終三臺都成功

image.png

3.2.6 安裝fs_broker

編譯broker
Broker 以插件的形式藤滥,獨立于 Doris 部署。如果需要從第三方存儲系統(tǒng)導入數(shù)據(jù)社裆,需要部署相應的 Broker拙绊,默認提供了讀取 HDFS 和百度云 BOS 的 fs_broker。fs_broker 是無狀態(tài)的泳秀,建議每一個 FE 和 BE 節(jié)點都部署一個 Broker标沪。

cd /root/incubator-doris/fs_brokers/apache_hdfs_broker
sh build.sh
image.png
image.png

拷貝源碼
拷貝fs_broker 的 output 目錄下的相應 Broker 目錄到需要部署的所有節(jié)點上。建議和 BE 或者 FE 目錄保持同級嗜傅。

cd /root/incubator-doris/fs_brokers/apache_hdfs_broker/output
scp -r apache_hdfs_broker root@10.31.1.119:/home/doris/
scp -r apache_hdfs_broker root@10.31.1.120:/home/doris/
scp -r apache_hdfs_broker root@10.31.1.121:/home/doris/
scp -r apache_hdfs_broker root@10.31.1.122:/home/doris/

修改相應 Broker 配置
可沿用默認值

cd /home/doris/apache_hdfs_broker/conf
vi apache_hdfs_broker.conf
image.png

啟動 Broker

sh bin/start_broker.sh --daemon

添加 Broker
要讓 Doris 的 FE 和 BE 知道 Broker 在哪些節(jié)點上金句,通過 sql 命令添加 Broker 節(jié)點列表。
使用 mysql-client 連接啟動的 FE吕嘀,執(zhí)行以下命令:

-- 其中 host 為 Broker 所在節(jié)點 ip违寞;port 為 Broker 配置文件中的 broker_ipc_port贞瞒。
ALTER SYSTEM ADD BROKER broker_name "host1:port1","host2:port2",...;

ALTER SYSTEM ADD BROKER broker_name "10.31.1.119:8000","10.31.1.120:8000","10.31.1.121:8000","10.31.1.122:8000";

查看 Broker 狀態(tài)

SHOW PROC "/brokers";
image.png

3.2.7 增加FE Observer

FE 分為 Leader,F(xiàn)ollower 和 Observer 三種角色趁曼。 默認一個集群军浆,只能有一個 Leader,可以有多個 Follower 和 Observer挡闰。其中 Leader 和 Follower 組成一個 Paxos 選擇組乒融,如果 Leader 宕機,則剩下的 Follower 會自動選出新的 Leader尿这,保證寫入高可用簇抵。Observer 同步 Leader 的數(shù)據(jù),但是不參加選舉射众。如果只部署一個 FE碟摆,則 FE 默認就是 Leader。

第一個啟動的 FE 自動成為 Leader叨橱。在此基礎上典蜕,可以添加若干 Follower 和 Observer。

修改 10.31.1.121上fe的配置文件
主要修改priority_networks 這個參數(shù)
priority_networks = 10.31.1.0/24

添加 Observer

-- 其中 host 為 Observer 所在節(jié)點 ip罗洗,port 為其配置文件 fe.conf 中的 edit_log_port愉舔。
ALTER SYSTEM ADD OBSERVER "host:port";

ALTER SYSTEM ADD OBSERVER "10.31.1.121:9010";

查看Observer 運行狀態(tài)

SHOW PROC '/frontends';
image.png

FAQ:

1. BE連接FE出錯

這個是網(wǎng)絡的問題,具體排查日志伙菜,主機多IP的情況下绩鸣,需要在配置文件中進行指定,例如:
priority_networks=10.31.1.0/24

還有一個問題识樱,我的FE節(jié)點因為是測試機赠法,已經(jīng)安裝好了MySQL,結果我BE連接過去的時候淑倾,是之前安裝的測試庫馏鹤,安裝FE之前,要卸載掉主機上已安裝的MySQL服務娇哆。

2. BE安裝報錯 - File descriptor number is less than 60000.

BE報錯:


image.png

解決方案:

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

-- 修改 /etc/sysctl.conf, 加入這個設置
echo   fs.file-max = 6553560  >> /etc/sysctl.conf

ulimit -u 60000

source /etc/profile
image.png

3. BE FE一些其它的報錯

安裝過程中湃累,因為配置文件等原因,出現(xiàn)了一些莫名奇妙的錯誤碍讨,此時可以把 $DORIS_HOME目錄下的 be or fe整個目錄全部刪除掉治力,然后從源重新進行拷貝,再進行配置即可勃黍。

參考:

  1. http://doris.apache.org/master/zh-CN/installing/compilation.html#%E4%BD%BF%E7%94%A8-docker-%E5%BC%80%E5%8F%91%E9%95%9C%E5%83%8F%E7%BC%96%E8%AF%91-%E6%8E%A8%E8%8D%90
  2. https://blog.csdn.net/qq_21480329/article/details/117730233
  3. https://blog.csdn.net/longqiancao1/article/details/117665789
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末琴许,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子溉躲,更是在濱河造成了極大的恐慌榜田,老刑警劉巖益兄,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異箭券,居然都是意外死亡净捅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門辩块,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛔六,“玉大人,你說我怎么就攤上這事废亭」拢” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵豆村,是天一觀的道長液兽。 經(jīng)常有香客問我,道長掌动,這世上最難降的妖魔是什么四啰? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮粗恢,結果婚禮上柑晒,老公的妹妹穿的比我還像新娘。我一直安慰自己眷射,他們只是感情好匙赞,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妖碉,像睡著了一般罚屋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗅绸,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音撕彤,去河邊找鬼鱼鸠。 笑死,一個胖子當著我的面吹牛羹铅,可吹牛的內(nèi)容都是我干的蚀狰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼职员,長吁一口氣:“原來是場噩夢啊……” “哼麻蹋!你這毒婦竟也來了?” 一聲冷哼從身側響起焊切,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扮授,失蹤者是張志新(化名)和其女友劉穎芳室,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刹勃,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡堪侯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了荔仁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伍宦。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乏梁,靈堂內(nèi)的尸體忽然破棺而出次洼,到底是詐尸還是另有隱情,我是刑警寧澤遇骑,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布卖毁,位于F島的核電站,受9級特大地震影響质蕉,放射性物質(zhì)發(fā)生泄漏势篡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一模暗、第九天 我趴在偏房一處隱蔽的房頂上張望禁悠。 院中可真熱鬧,春花似錦兑宇、人聲如沸碍侦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓷产。三九已至,卻和暖如春枚驻,著一層夾襖步出監(jiān)牢的瞬間濒旦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工再登, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留尔邓,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓锉矢,卻偏偏與公主長得像梯嗽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沽损,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容