Doris-安装配置-统信
uos环境
#安装环境
uname -a
Linux localhost 4.19.90-2211.5.0.0178.22.uel20.x86_64 #1 SMP Thu Nov 24 11:03:45 CST 2022 x86_64 x86_64 x86_64 GNU/Linux
# 操作系统
cat /proc/version
Linux version 4.19.90-2211.5.0.0178.22.uel20.x86_64 (mockbuild@UOS-x86-build4) (gcc version 7.3.0 (GCC)) #1 SMP Thu Nov 24 11:03:45 CST 2022
# 查看系统与版本
lsb_release -a
No LSB modules are available.
Distributor ID: Uos
Description: UnionTech OS Server 20
Release: 20
Codename: fuyu
# 查看操作系统版本
cat /etc/os-version
[Version]
SystemName=UnionTech OS Server
SystemName[zh_CN]=统信服务器操作系统
ProductType=Server
ProductType[zh_CN]=服务器
EditionName=e
EditionName[zh_CN]=e
MajorVersion=20
MinorVersion=1050
OsBuild=12038.103
AVX2指令
# CUP需要至此AVX2指令集,有结果输出表CPU支持
cat /proc/cpuinfo | grep avx2
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat pku ospke md_clear flush_l1d arch_capabilities
解压
cd /home
# 解压fe、be、fs_broker
tar xvf apache-doris-fe-1.2.3-bin-x86_64.tar.xz
tar xvf apache-doris-be-1.2.3-bin-x86_64.tar.xz
tar xvf apache-doris-dependencies-1.2.3-bin-x86_64.tar.xz
准备工作
软件 | 版本 |
---|---|
Java | 1.8 及以上 |
GCC | 4.8.2 及以上 |
设置系统最大打开文件句柄数
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
关闭交换分区(swap)
# 关闭命令
swapoff -a
# 查看交换分区的状态
free -m
安装部署
配置FE
cd /home/apache-doris-fe-1.2.3-bin-x86_64
vim conf/fe.conf
# 修改参数如下
# 元数据目录(该目录需要提前创建好 mkdir /home/apache-doris-fe-1.2.3-bin-x86_64/doris-meta)
meta_dir = ${DORIS_HOME}/doris-meta
# FE的IP
priority_networks = 192.168.190.0/24
启动 FE
# 启动FE
sh /home/apache-doris-fe-1.2.3-bin-x86_64/bin/start_fe.sh --daemon
验证 FE
查看端口信息
# 查看8030、9010、9020、9030端口是否启动
netstat -plnt
访问页面验证(默认用户名root,密码为空)
地址:http://192.168.190.150:8030/
使用mysql客户端访问验证
# 使用mysql客户端登录Doris
mysql -uroot -P9030 -h127.0.0.1
# 检查 FE 运行状态
show frontends\G;
# 如果是主节点 IsMaster、加入 Join 和存活 Alive 列都是真 true 时,节点是正常的。
配置BE
cd /home/apache-doris-be-1.2.3-bin-x86_64
vim conf/be.conf
# 修改参数如下
# BE的IP
priority_networks = 192.168.190.0/24
# 数据存放目录(该目录需要提前创建好 mkdir /home/apache-doris-be-1.2.3-bin-x86_64/storage)
storage_root_path = ${DORIS_HOME}/storage
启动BE
# 启动BE
sh /home/apache-doris-be-1.2.3-bin-x86_64/bin/start_be.sh --daemon
注:需要把 apache-doris-dependencies-1.2.3-bin-x86_64.tar.xz 解压,拷贝 java-udf-jar-with-dependencies.jar 到 BE 安装目录的 lib 目录里。否则 BE 启动会报以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/doris/udf/JniUtil
Caused by: java.lang.ClassNotFoundException: org.apache.doris.udf.JniUtil
添加BE到集群
# 使用mysql客户端登录Doris
mysql -uroot -P9030 -h127.0.0.1
# 将指定BE加入集群
ALTER SYSTEM ADD BACKEND "192.168.190.150:9050";
验证BE
查看端口信息
# 查看8060、8040、9050、9060端口是否启动
netstat -plnt
使用mysql客户端访问验证
# 使用mysql客户端登录Doris
mysql -uroot -P9030 -h127.0.0.1
# 检查 BE 运行状态
show backends\G;
# 如果存活 Alive 为真 true 就代表节点运行正常。
启动FS_BROKER(可选)
sh /home/apache-doris-dependencies-1.2.3-bin-x86_64/apache_hdfs_broker/bin/start_broker.sh --daemon
添加验证broker节点(可选)
# 使用mysql客户端登录Doris
mysql -uroot -P9030 -h127.0.0.1
# 使用mysql客户端访问pe,添加broker节点
ALTER SYSTEM ADD BROKER broker_name "192.168.190.150:8000";
# 查看Broker状态
SHOW PROC "/brokers";
# 如果存活 Alive 为真 true 就代表节点运行正常。
FE扩容和缩容(可选)
增加FE节点,FE分为Leader,Follower和Observer三种角色。默认一个集群只能有一个Leader,可以有多个Follower和Observer.其中Leader和Follower组成一个Paxos选择组,如果Leader宕机,则剩下的Follower会成为Leader,保证HA。Observer是负责同步Leader数据的不参与选举。如果只部署一个FE,则FE默认就是Leader。
# 使用mysql客户端登录Doris
mysql -h 127.0.0.1 -P9030 -uroot
# 添加Follower
ALTER SYSTEM ADD FOLLOWER "192.168.190.151:9010";
# 添加Observer
ALTER SYSTEM ADD OBSERVER "192.168.190.152:9010";
# 启动fe扩容节点
sh bin/start_fe.sh --helper 192.168.190.150:9010 --daemon
修改登录密码
# 使用mysql客户端登录Doris
mysql -h 127.0.0.1 -P9030 -uroot
# 修改登录密码
SET PASSWORD FOR 'root' = PASSWORD('your_password');
测试表
# 创建数据库
create database test_db
# 创建表
CREATE TABLE test_db.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");
# 插入数据
insert into test_db.table1 values(1,1,'user1',10);
insert into test_db.table1 values(1,1,'user1',10);
insert into test_db.table1 values(1,2,'user1',20);
insert into test_db.table1 values(1,3,'user1',10);
# 查询
select * from test_db.test1;