Doris安裝部署

女友在高考發表於2022-12-06

下載安裝

Doris執行在Linux環境中,推薦 CentOS 7.x 或者 Ubuntu 16.04 以上版本,同時你需要安裝 Java 執行環境(JDK最低版本要求是8)

1、下載安裝包

下載地址:https://doris.apache.org/zh-CN/download/

安裝包有兩個,一個是fe、一個是be,都需要下載

2、配置Doris

2.1 配置FE

解壓fe的安裝包,進入到conf目錄,編輯fe.conf

只需要修改一個引數:priority_networks

這裡假設你的節點IP是192.168.56.17,那麼我們可以透過掩碼的方式配置為 192.168.56.0/24

priority_networks=192.168.56.0/24

2.2 啟動FE

./bin/start_fe.sh --daemon

啟動完成後可以使用下面的命令檢查Doris是否啟動成功

curl http://127.0.0.1:8030/api/bootstrap

如果返回結果中帶有 "msg":"success" 字樣,則說明啟動成功

2.3 訪問Doris的UI

http:// fe_ip:8030

這裡我們使用 Doris 內建的預設使用者 root 進行登入,密碼是空

2.4 連線FE

我們可以使用MySql客戶端來連線Doris FE,也可以使用mysql命令工具連線,因為他是Mysql協議,所以在使用上跟Mysql一樣的

  • 客戶端連線:
  • Mysql命令連線
mysql -uroot -P9030 -h127.0.0.1

注意:

  1. 這裡使用的 root 使用者是 doris 內建的預設使用者,也是超級管理員使用者
  2. -P :這裡是我們連線 Doris 的查詢埠,預設埠是 9030,對應的是fe.conf裡的 query_port
  3. -h : 這裡是我們連線的 FE IP地址,如果你的客戶端和 FE 安裝在同一個節點可以使用127.0.0.1,這種也是 Doris 提供的如果你忘記 root 密碼,可以透過這種方式不需要密碼直接連線登入,進行對 root 密碼進行重置

執行下面的命令可以檢視FE執行狀態

show frontends\G;
  1. 配置BE

3.1 我們進入到be目錄,編輯conf/be.conf

# 新增 priority_networks 引數
priority_networks=192.168.56.0/24

# 配置BE資料儲存目錄
storage_root_path=/home/disk2/doris

注意:這個目錄/home/disk2/doris 必須先建立好

3.2 啟動BE

./bin/start_be.sh --daemon

如果啟動失敗,修改可開啟檔案數。異常資訊如下:

E1128 03:45:46.852288 24097 storage_engine.cpp:426] File descriptor number is less than 60000. Please use (ulimit -n) to set a value equal or greater than 60000

W1128 03:45:46.852396 24097 storage_engine.cpp:188] check fd number failed, error: Internal error: file descriptors limit is too small

解決方法:
修改配置檔案/etc/security/limits.conf
新增:

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

或者執行

ulimit -n 65535

重啟系統後生效

3.3 新增 BE 節點到叢集

透過MySQL 客戶端連線到 FE 之後執行下面的 SQL,將 BE 新增到叢集中

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 的心跳上報埠,和你在 be.conf 裡的 heartbeat_service_port 匹配,預設是 9050。

透過SHOW BACKENDS命令可以檢視BE執行狀態

Alive : true表示節點執行正常

停止BE命令

./bin/stop_be.sh

建立資料表

  1. 建立資料庫
create database demo;
  1. 建立表
CREATE TABLE IF NOT EXISTS demo.example_tbl
(
    `user_id` LARGEINT NOT NULL COMMENT "使用者id",
    `date` DATE NOT NULL COMMENT "資料灌入日期時間",
    `city` VARCHAR(20) COMMENT "使用者所在城市",
    `age` SMALLINT COMMENT "使用者年齡",
    `sex` TINYINT COMMENT "使用者性別",
    `last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "使用者最後一次訪問時間",
    `cost` BIGINT SUM DEFAULT "0" COMMENT "使用者總消費",
    `max_dwell_time` INT MAX DEFAULT "0" COMMENT "使用者最大停留時間",
    `min_dwell_time` INT MIN DEFAULT "99999" COMMENT "使用者最小停留時間"
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES (
    "replication_allocation" = "tag.location.default: 1"
);
  1. 匯入資料
10000,2017-10-01,北京,20,0,2017-10-01 06:00:00,20,10,10
10000,2017-10-01,北京,20,0,2017-10-01 07:00:00,15,2,2
10001,2017-10-01,北京,30,1,2017-10-01 17:05:45,2,22,22
10002,2017-10-02,上海,20,1,2017-10-02 12:59:12,200,5,5
10003,2017-10-02,廣州,32,0,2017-10-02 11:20:00,30,11,11
10004,2017-10-01,深圳,35,0,2017-10-01 10:00:15,100,3,3
10004,2017-10-03,深圳,35,0,2017-10-03 10:20:22,11,6,6

將上面的資料儲存在test.csv檔案中。然後透過Stream load方式將上面儲存到檔案中的資料匯入到我們剛才建立的表中。

curl  --location-trusted -u root: -T test.csv -H "column_separator:," http://127.0.0.1:8030/api/demo/example_tbl/_stream_load
  • -T test.csv : 這裡是我們剛才儲存的資料檔案,如果路徑不一樣,請指定完整路徑
  • -u root : 這裡是使用者名稱密碼,我們使用預設使用者root,密碼是空
  • 127.0.0.1:8030 : 分別是 fe 的 ip 和 http_port

初次匯入時報錯:

Message": "too many filtered rows

因為我是之前是用的wps建立的csv檔案,改用用記事本之後就好了。
4. 查詢資料

select * from example_tbl;

到這裡我們整個快速開始就結束了,我們從 Doris 安裝部署、啟停、建立庫表、資料匯入及查詢,完整的體驗了Doris的操作流程,對Doris有了個簡單的使用,後續再繼續開始我們Doris的深入之旅吧。