一、官网
编译: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. 如有用欢迎转载,请注明转载出处。