一、官網
編譯:http://doris.apache.org/master/zh-CN/installing/compilation.html
部署:http://doris.apache.org/master/zh-CN/installing/install-deploy.html
二、Docker
1 卸載舊版本
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2 安裝所需軟件包
注:yum-utils 提供了 yum-config-manager ,並且 device mapper 存儲驅動程序需要 device-mapper-persistent-data 和 lvm2
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3 配置源地址
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4 安裝社區版引擎
$ sudo yum -y install docker-ce docker-ce-cli containerd.io
5 啟動Docker
$ sudo systemctl start docker
6 驗證docker
$ sudo docker run hello-world
7 查看docker配置
$ sudo docker info
8 重啟docker
$ sudo systemctl restart docker
9 搜索鏡像
$ docker search [image_name:image_tag]
10 獲取鏡像
$ docker pull [image_name:image_tag]
11 列出本地鏡像
$ docker images
12 刪除鏡像
$ sudo docker rmi [image_name:image_tag]
13 創建容器
$ sudo docker create -it [image_name:image_tag] /bin/bash
14 啟動容器
$ sudo docker start [container_id]
15 新建並啟動容器
# 交互式啟動
$ sudo docker run -it [image_name:image_tag] /bin/bash # 后台啟動 $ sudo docker run -it -d [image_name:image_tag] /bin/bash
16 進入容器
$ sudo docker exec -it [image_name:image_tag] /bin/bash
17 停止容器
$ sudo docker stop [container_id]
18 刪除容器
# 刪除已停止的容器
$ sudo docker rm [container_id]
# 刪除運行的容器
$ sudo docker rm -f [container_id]
19 查看容器
# 查看啟動的容器 $ sudo docker ps # 查看所有的容器 $ sudo docker ps -a
三 配置npm
1 配置代理
npm config set proxy [your_proxy]
npm config set https-proxy [your_proxy]
2 配置源
npm config set registry https://registry.npm.taobao.org npm config get registry
四 配置maven
mvn -v 查看maven目錄,修改 setting.xml
1 配置代理
<proxy> <!--id 代理的名稱(隨便設)--> <id>optional</id> <!--true 表示生效--> <active>true</active> <!--協議--> <protocol>http</protocol> <!--上網用戶名及密碼,如果沒有,請注釋或者是刪除--> <username></username> <password></password> <!--上網使用ip及端口,即代理,這里替換成相對應的ip和端口--> <host>[your_proxy_host]</host> <port>[your_proxy_port]</port> <!--填寫不用代理的地址,以豎線|分割多個地址,一般填寫本地Maven倉庫地址--> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy>
2 配置源
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> # 或開源中國maven鏡像 <mirror> <id>nexus-osc</id> <mirrorOf>*</mirrorOf> <name>Nexus osc</name> <url>http://maven.oschina.net/content/groups/public/</url> </mirror>
五 編譯
1 下載鏡像
docker pull apache/incubator-doris:build-env-1.2
2 下載源碼
wget https://dist.apache.org/repos/dist/dev/incubator/doris/0.14/0.14.0-rc06/apache-doris-0.14.0-incubating-src.tar.gz
tar -zxvf apache-doris-0.14.0-incubating-src.tar.gz
3 運行鏡像
docker run -it -v /[local]/.m2:/[docker]/.m2 -v /[local]/apache-doris-0.14.0-incubating-src/:/[docker]/apache-doris-0.14.0-incubating-src/ apache/incubator-doris:build-env-1.2
4 編譯fe\be
cd /{doris_home}/ sh build.sh
輸出目錄: {doris_home}/output
5 編譯broker
cd {doris_home}/fs_brokers/apache_hdfs_broker/ sh build.sh
輸出目錄:
{doris_home}/fs_brokers/apache_hdfs_broker/output
六、FE部署
1 拷貝fe部署文件到指定節點
2 配置fe
(1)配置文件:{doris_home}/fe/conf/fe.conf
(2)修改配置項
meta_dir = ${DORIS_HOME}/doris-meta
注:①meta_dir是元數據存放目錄,默認值為 ${DORIS_HOME}/doris-meta ,需要手動創建該目錄。
②其它配置項可選,參考官網。
3 啟動fe
sh bin/start_fe.sh --daemon
注:FE進程啟動進入后台執行。日志默認存放在 log/ 目錄下。如啟動失敗,可以通過查看 log/fe.log 或者 log/fe.out 查看錯誤信息。
4 fe高可用
4.1 使用mysql客戶端連接doris
# query_port 默認9030,對應fe/conf/fe.conf
mysql -h {fe_ip} -u root -P {query_port}
4.2 添加follower或observer
# 第一個節點自動為leader,edit_log_port默認9010 ALTER SYSTEM ADD FOLLOWER "follower_host:edit_log_port"; ALTER SYSTEM ADD OBSERVER "observer_host:edit_log_port";
4.3 配置並啟動follower或observer
./bin/start_fe.sh --helper leader_host:edit_log_port --daemon
注:①Follower 和 Observer 的配置同 Leader 的配置。
②第一次啟動時,需執行以下命令 --helpler leader_host:edit_log_port ,即,--helper 參數僅在 follower 和 observer 第一次啟動時才需要
5 查看fe狀態
show proc '/frontends'\G;
6 刪除fe
ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
7 FE 擴容/縮容注意事項
7.1 擴容
(1)Follower FE(包括 Leader)的數量必須為奇數,建議最多部署 3 個組成高可用(HA)模式即可。
(2)當 FE 處於高可用部署時(1個 Leader,2個 Follower),我們建議通過增加 Observer FE 來擴展 FE 的讀服務能力。當然也可以繼續增加 Follower FE,但幾乎是不必要的。
(3)通常一個 FE 節點可以應對 10-20 台 BE 節點。建議總的 FE 節點數量在 10 個以下。而通常 3 個即可滿足絕大部分需求。
(4)helper 不能指向 FE 自身,必須指向一個或多個已存在並且正常運行中的 Master/Follower FE。
7.2 縮容
(1)刪除 Follower FE 時,確保最終剩余的 Follower(包括 Leader)節點為奇數。
8 停止FE
sh bin/stop_fe.sh
七 部署BE
7.1 拷貝be部署文件到指定節點
7.2 配置be
7.2.1 配置文件: be/conf/be.conf。
7.2.2 修改配置項:
# data root path, separate by ';' # you can specify the storage medium of each root path, HDD or SSD # you can add capacity limit at the end of each root path, seperate by ',' # eg: # storage_root_path = /home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris # /home/disk1/doris.HDD, capacity limit is 50GB, HDD; # /home/disk2/doris.SSD, capacity limit is 1GB, SSD; # /home/disk2/doris, capacity limit is disk capacity, HDD(default)
①storage_root_path
:數據存放目錄。默認在be/storage下,需要手動創建該目錄。
②多個路徑之間使用英文狀態的分號 ;
分隔(最后一個目錄后不要加 ;
)。
③可以通過路徑區別存儲目錄的介質,HDD或SSD。
④可以添加容量限制在每個路徑的末尾,通過英文狀態逗號,
隔開。
⑤示例1如下:storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,10;/home/disk2/doris
注意:如果是SSD磁盤要在目錄后面加上.SSD
,HDD磁盤在目錄后面加.HDD
說明
-
- /home/disk1/doris.HDD, 50,表示存儲限制為50GB, HDD;
- /home/disk2/doris.SSD 10, 存儲限制為10GB,SSD;
- /home/disk2/doris,存儲限制為磁盤最大容量,默認為HDD
⑥示例2如下:storage_root_path=/home/disk1/doris,medium:hdd,capacity:50;/home/disk2/doris,medium:ssd,capacity:50
注意:不論HHD磁盤目錄還是SSD磁盤目錄,都無需添加后綴,storage_root_path參數里指定medium即可
說明
-
- /home/disk1/doris,medium:hdd,capacity:10,表示存儲限制為10GB, HHD;
- /home/disk2/doris,medium:ssd,capacity:50,表示存儲限制為50GB, SSD;
7.2.3 在 FE 中添加所有 BE 節點
# heartbeat_service_port默認9050,對應be/conf/be.conf ALTER SYSTEM ADD BACKEND "be_host:be_heartbeat_service_port";
7.3 啟動be
sh bin/start_be.sh --daemon
注:日志默認存放在 be/log/ 目錄下。如啟動失敗,可以通過查看 be/log/be.log 或者 be/log/be.out 查看錯誤信息。
7.4 查看be狀態
SHOW PROC '/backends'\G;
7.5 be擴容
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
BE 擴容注意事項:
①BE 擴容后,Doris 會自動根據負載情況,進行數據均衡,期間不影響使用。
7.6 be縮容
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port"; # 或者 ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
注意:DROP BACKEND 會直接刪除該 BE,並且其上的數據將不能再恢復!!!所以強烈不推薦使用 DROP BACKEND 這種方式刪除 BE 節點。使用DECOMMISSION語句時,會有對應的防誤操作提示。
7.7 DECOMMISSION 命令說明
(1)該命令用於安全刪除 BE 節點。命令下發后,Doris 會嘗試將該 BE 上的數據向其他 BE 節點遷移,當所有數據都遷移完成后,Doris 會自動刪除該節點。
(2)該命令是一個異步操作。執行后,可以通過 SHOW PROC '/backends';
看到該 BE 節點的 isDecommission 狀態為 true。表示該節點正在進行下線。
(3)該命令不一定執行成功。比如剩余 BE 存儲空間不足以容納下線 BE 上的數據,或者剩余機器數量不滿足最小副本數時,該命令都無法完成,並且 BE 會一直處於 isDecommission 為 true 的狀態。
(4)DECOMMISSION 的進度,可以通過 SHOW PROC '/backends';
中的 TabletNum 查看,如果正在進行,TabletNum 將不斷減少。
(5)該操作可以通過CANCEL DEMMISSION命令取消。取消后,該 BE 上的數據將維持當前剩余的數據量。后續 Doris 重新進行負載均衡
CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
八 部署Broker(可選)
8.1 拷貝broker文件到指定節點
fs_brokers/apache_hdfs_broker/output/apache_hdfs_broker
8.2 配置broker
8.2.1 配置文件
apache_hdfs_broker/conf/apache_hdfs_broker.conf
8.2.2 配置項
# the thrift rpc port broker_ipc_port=8000
注:可使用默認值8000,不做修改
8.3 啟動broker
sh bin/start_broker.sh --daemon
8.4 添加broker
ALTER SYSTEM ADD BROKER broker_name "broker1_host:broker1_ipc_port","broker2_host:broker2_ipc_port",...;
8.5 查看broker狀態
SHOW PROC "/brokers"\G;
8.6 broker擴容
# ipc_port默認8000,對應/apache_hdfs_broker/conf/apache_hdfs_broker.conf ALTER SYSTEM ADD BROKER broker_name "broker_host:broker_ipc_port";
8.7 broker縮容
ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port"; ALTER SYSTEM DROP ALL BROKER broker_name;
九、Apache Doris簡單使用
9.1 新建數據庫
CREATE DATABASE `test`;
9.2 切換數據庫
use `test`;
9.3 新建數據表
CREATE TABLE `student` ( `id` int(11) NULL COMMENT "", `name` varchar(50) NULL COMMENT "", `age` int(11) NULL COMMENT "", `count` bigint(20) SUM NULL DEFAULT "0" COMMENT "" ) ENGINE=OLAP AGGREGATE KEY(`id`, `name`, `age`) COMMENT "OLAP" DISTRIBUTED BY HASH(`id`) BUCKETS 10 PROPERTIES ( "replication_num" = "1", "in_memory" = "false", "storage_format" = "V2" );
9.4 insert into插入數據
insert into student values(1,'stephen',18,2);
9.5 stream load插入數據
示例數據
3,stephen,18,33 6,lebron,28,44 4,stephen,18,33 5,stephen,18,33 1,stephen,18,33 2,lebron,28,44
curl --location-trusted -u root -T /app/student.csv -H "label:123" -H "column_separator:," http://{fe_host}:{fe_http_port}/api/test/student/_stream_load
9.6 查詢數據
select * from student;
十 后記
1. 該文檔詳細記錄了Apache Doris測試環境的編譯、部署、簡單使用,所有配置都使用官網默認配置。
2. 更多優化配置、高級使用請參考Apache Doris官網。
3. 如有用歡迎轉載,請注明轉載出處。