一,编译文件的下载准备
- 预编译文件下载 Palo文档PALO - 预编译版本下载 | Doris (baidu.com)
- 先确认待安装的服务器的CPU是否支持avx2指令,这个过程所有服务器都需要确定。
0.14.13.1 及之后的版本需要运行环境的 CPU 支持 avx2 指令,你可以通过 cat /proc/cpuinfo 查看是否支持。如果不支持,请使用带 no-avx2 后缀的版本。avx2 指令会显著提升 bloomfilter 等数据结构的计算效率,从而影响索引过滤、runtime filter 等功能的效率。
使用以下命令查看:
[root@DORIS-FE-PRD01 ~]# cat /proc/cpuinfo
-
根据服务器是否试支持avx2选择对应的版本下载
- 下载完后得到PALO-0.15.1-rc09-binary.tar.gz,上传至服务器
- 上传完成后使用解压命令 tar zxvf 解压得到PALO-0.15.1-rc09-binary目录,目录结构如下,主要关注be和fe目录。
tar zxvf 文件夹名称
二,FE的配置启动
- 进入fe/conf, vim be.conf 编辑配置文件 关键的几个配置如下
- meta_dir 属性默认配置为 ${DORIS_HOME}/doris-meta,
- 其中 ${DORIS_HOME}为当前的fe的文件夹路径 属性值需要提前创建文件夹路径
- 使用默认地址的话 提前在fe中创建doris-meta文件夹
# meta_dir = ${DORIS_HOME}/doris-meta
- 启动FE
# 进入 fe的bin目录
[root@DORIS-FE-PRD01 bin]# cd /home/doris/fe/bin
# 运行启动脚本
[root@DORIS-FE-PRD01 bin]# sh start_fe.sh --daemon
# 进入 conf目录
[root@DORIS-FE-PRD01 bin]# cd ../log
# 查看启动日志
[root@DORIS-FE-PRD01 bin]# tail -f fe.out
# FE的关闭命令
[root@DORIS-FE-PRD01 bin]# sh stop_fe.sh --daemon
- 需要 外网连接的话 开放外网端口 9050
- 使用装有mysql的服务器 测试连接数据库 mysql -h 本机的ip -P 9030 -uroot
- Doris 默认初始启动没有密码
[root@DORIS-FE-PRD01 bin]# mysql -h 本机的ip -P 9030 -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5781
Server version: 5.1.0 Doris version 0.15.1-rc09-Unknown
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
三,BE的配置启动
- 把be文件夹 复制到子节点服务器
- 修改conf/be.conf
- 关键性配置 storage_root_path 数据存放目录 默认为 ${DORIS_HOME}/storage
- 使用默认配置需要提前在be文件夹下创建storage 目录
主要是配置 storage_root_path:数据存放目录。默认在be/storage下,需要手动创建该目录。多个路径之间使用英文状态的分号 ; 分隔(最后一个目录后不要加 ;)。可以通过路径区别存储目录的介质,HDD或SSD。可以添加容量限制在每个路径的末尾,通过英文状态逗号,隔开。
- 示例1如下:
注意:如果是SSD磁盘要在目录后面加上.SSD,HDD磁盘在目录后面加.HDD
storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,10;/home/disk2/doris
- 启动关闭BE节点
进入be目录
[root@DORIS-BE-PRD01 conf]# cd /home/doris/be/bin
运行启动脚本
[root@DORIS-BE-PRD01 bin]# sh start_be.sh --daemon
日志同样在log目录下 自行查看
运行暂停脚本
[root@DORIS-BE-PRD01 bin]# sh stop_be.sh --daemon
四,Be接入Fe
- 使用mysql 登入Fe
- 使用如下命令 添加Be节点
# ALTER SYSTEM ADD BACKEND "Be的主机Ip:端口";
端口默认为 9050
ALTER SYSTEM ADD BACKEND "192.168.16.66:9050";
- 添加完后,通过show proc '/backends';查看be节点的状态,主要关注alive节点存活状态 是否正常。
mysql> show proc '/backends';
+-----------+-----------------+---------------+-----------------------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+---------------------+--------------------------------------------------------------------------------+
| BackendId | Cluster | IP | HostName | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | ClusterDecommissioned | TabletNum | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | Tag | ErrMsg | Version | Status |
+-----------+-----------------+---------------+-----------------------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+---------------------+--------------------------------------------------------------------------------+
| 10009 | default_cluster | 192.168.16.66 | doris-be-prd01.aimatech.com | 9050 | 9060 | 8040 | 8060 | 2022-02-19 10:50:31 | 2022-02-21 11:21:11 | true | false | false | 68 | 2.802 GB | 2.615 TB | 2.619 TB | 0.14 % | 0.42 % | {"location" : "default"} | | 0.15.1-rc09-Unknown | {"lastSuccessReportTabletsTime":"2022-02-21 11:20:46","lastStreamLoadTime":-1} |
+-----------+-----------------+---------------+-----------------------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+---------------------+--------------------------------------------------------------------------------+
1 rows in set (0.02 sec)
五,Brock插件的配置启动
六,配置注意事项
1, Fe和Be 接入通讯失败 live一直为false
- 查看BE的绑定IP
- Be的话 查看 log下的be.INFO文件,查找 local host ip=
I0408 18:30:13.311982 759996 daemon.cpp:269] Disk Info:
Num disks 3: vda, vdb, vdc
I0408 18:30:13.312005 759996 daemon.cpp:270] Mem Info:
15.51 GB
CGroup Info: Process CGroup Info:
memory.limit_in_bytes=9223372036854771712, cpu cfs limits:
unlimited
I0408 18:30:13.313442 759996 backend_options.cpp:88] priority
cidrs in conf: 192.168.80.90/24
I0408 18:30:13.313583 759996 backend_options.cpp:76] local host ip=192.168.80.23
I0408 18:30:13.314463 759996 storage_engine.cpp:101] starting
backend using uid:c841ea9c2a6e772f-952be54ac80c3988
FE接入BE的时候 使用的IP为 上边查看出来的绑定IP 端口默认为9050
- 设置Fe的登入密码
- 登入 Fe 执行 修改账号密码的sql即可 sql如下:
SET PASSWORD FOR 'root' = PASSWORD('your_password');
2, 物理删除Be节点 (对Be缩容)
- show proc '/backends';查看be节点的状态
- 执行 如下两个命令即可
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port"; ALTER SYSTEM DROPP BACKEND "be_host:be_heartbeat_service_port";
3, BE节点的重新启动
- 一定要先关闭BE节点 然后等待二到三分钟 等待端口占用关掉 ,然后再去查看端口占用情况,
[root@localhost conf]# netstat -anp | grep 8040
tcp 0 0 0.0.0.0:8040 0.0.0.0:* LISTEN 823334/palo_be
- 如果端口占用还未被释放 就手动释放端口 关闭线程
- BE启动报错 Address already in use
Check failed: s.ok() Internal error: tcp listen failed, errno=98, errmsg=Address already in use
- 这个就是端口占用 启动失败 可以查看端口的使用情况 或者更改配置 更换端口
4, 初次启动bin/start_be.sh --daemon时,启动不了,出现以下问题
- 原因是文件最大句柄数太小。 只需要修改文件最大句柄大小即可
5,Fe绑定ip 默认都去绑定内网的ip 一定要配置这个属性哦 如下: 24 跟32 不要改 结尾的0 不要变动 前三位根据实际的网络Ip地址前缀来
七,日常操作命令
- 创建用户
CREATE USER 'test' IDENTIFIED BY 'test_passwd';
- 创建数据库
CREATE DATABASE example_db;
- 查看数据库
SHOW DATABASES;
- 账户授权
GRANT ALL ON example_db TO test;
- 查看表
SHOW TABLES;
- 单分区 建表语句
CREATE TABLE table1
(
siteid INT DEFAULT '10',
citycode SMALLINT,
username VARCHAR(32) DEFAULT '',
pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(siteid, citycode, username)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "1");
- 复合分区建表语句
CREATE TABLE table2
(
event_day DATE,
siteid INT DEFAULT '10',
citycode SMALLINT,
username VARCHAR(32) DEFAULT '',
pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(event_day, siteid, citycode, username)
PARTITION BY RANGE(event_day)
(
PARTITION p201706 VALUES LESS THAN ('2017-07-01'),
PARTITION p201707 VALUES LESS THAN ('2017-08-01'),
PARTITION p201708 VALUES LESS THAN ('2017-09-01')
)
DISTRIBUTED BY HASH(siteid) BUCKETS 10
PROPERTIES("replication_num" = "1");
文献参考:
Apache Doris
Doris集群安装部署