当前位置:   article > 正文

CentOS7安装部署Doris_centos7下安装apachedoris数据库

centos7下安装apachedoris数据库

CentOS7安装部署Doris

一、前言

1.简介

Apache Doris是基于MPP架构的新一代开源实时数据仓库,使用更方便,性能更高,适用于大数据分析。

2.环境

  • Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
  • JDK 版本:Java SE Development Kit 11.0.19
  • Doris 版本:1.2.4.1

快速开始

Doris 介绍

标准部署 - Apache Doris

弹性扩缩容 - Apache Doris

Download - Apache Doris

ALTER-SYSTEM-DROP-BACKEND - Apache Doris

弹性扩缩容 - Apache Doris

CentOS基础操作命令

CentOS对换home分区与root分区的存储空间

CentOS7安装部署Java11

CentOS7安装部署MySQL80

二、正文

1.Doris基础

1)架构图

Doris 介绍

在这里插入图片描述

  • FE(Frontend)主要负责元数据的管理、存储,以及查询的解析等

  • BE(Backend)则主要负责数据的存储、以及查询计划的执行。BE 中的每个节点都存储有数据的多副本,从而保证数据的高可用和高可靠

2)通讯端口

标准部署 - Apache Doris

  • Doris 各个实例直接通过网络进行通讯,端口如下:
实例名称端口名称默认端口通讯方向说明
BEbe_port9060FE --> BEBE 上 thrift server 的端口,用于接收来自 FE 的请求
BEwebserver_port8040BE <–> BEBE 上的 http server 的端口
BEheartbeat_service_port9050FE --> BEBE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
BEbrpc_port8060FE <–> BE, BE <–> BEBE 上的 brpc 端口,用于 BE 之间通讯
FEhttp_port8030FE <–> FE,用户 <–> FEFE 上的 http server 端口
FErpc_port9020BE --> FE, FE <–> FEFE 上的 thrift server 端口,每个fe的配置需要保持一致
FEquery_port9030用户 <–> FEFE 上的 mysql server 端口
FEedit_log_port9010FE <–> FEFE 上的 bdbje 之间通信用的端口
Brokerbroker_ipc_port8000FE --> Broker, BE --> BrokerBroker 上的 thrift server,用于接收请求
  • FE 元数据存放位置:meta_dir = ${DORIS_HOME}/doris-meta
  • BE 数据存放目录:storage_root_path = ${DORIS_HOME}/storage

2.部署服务器

实例IP 地址
FE192.168.8.111
BE192.168.8.112
BE192.168.8.113

3.安装基础环境

在3 台服务器上执行基础环境的安装和配置

1)安装JDK 11

2)安装GCC

yum -y install gcc
gcc --version
  • 1
  • 2

3)设置文件句柄数

  • 设置系统最大打开文件句柄数

  • 编辑 limits.conf

vim /etc/security/limits.conf
  • 1
  • 写入内容
* soft nofile 65536 
* hard nofile 65536
* soft nproc 204800
* hard nproc 204800
  • 1
  • 2
  • 3
  • 4
  • 显示当前用户进程可以打开的最大文件描述符数目
ulimit -n
  • 1

4)关闭交换分区(swap)

  • 查询交换分区
swapon --show
  • 1
  • 关闭交换分区
# 备用:打开交换分区:swapon -a
swapoff -a
  • 1
  • 2
  • 编辑 /etc/fstab
vim /etc/fstab
  • 1
  • 加入注释
# /dev/mapper/centos-swap swap                    swap    defaults        0 0
  • 1

5)时钟同步

  • 安装 rdate 软件包
#安装rdate
yum -y install rdate

#同步时间
rdate -s time-b.nist.gov

#查看时间是否正确
date
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 安装定时器软件包
yum -y install crontab
  • 1
  • 创建 crontab 任务
crontab -e
  • 1
  • 写入内容:20 秒同步一次
*/20 * * * * /usr/bin/rdate -s time-b.nist.gov > /dev/null 2>&1
  • 1
  • 重启 crontab 服务
service crond reload
  • 1
  • 其它时间同步服务器节点
节点位置节点域名
东南大学s1d.time.edu.cn
清华大学s1e.time.edu.cn
清华大学s2a.time.edu.cn
清华大学s2b.time.edu.cn
北京邮电大学s2c.time.edu.cn
上海交通大学ntp.sjtu.edu.cn
北京邮电大学s1a.time.edu.cn
北京大学s1c.time.edu.cn
香港中文大学clock.cuhk.edu.hk

6)关闭防火墙

  • 可禁用防火墙,或配置开放的端口,后者比较安全
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.集群部署

1)安装FE

FE 服务器:192.168.8.111

  • 创建安装目录
mkdir /opt/doris
cd /opt/doris
  • 1
  • 2
  • 下载安装包,当前安装版本:1.2.4.1

Download - Apache Doris

wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-1.2.4.1-bin-x86_64.tar.xz
  • 1
  • 解压安装包
tar -xvf apache-doris-1.2.4.1-bin-x86_64.tar.xz
  • 1
  • 移动 FE 文件夹到安装目录:/opt/doris/
mv /opt/doris/apache-doris-1.2.4.1-bin-x86_64/fe/ /opt/doris/
  • 1
  • 编辑配置文件
vim ./fe/conf/fe.conf
  • 1
  • 修改内容:
  1. JDK 安装目录
  2. 绑定服务器 IP
# JAVA_OPTS 上面一行
JAVA_HOME=/opt/java/jdk-11.0.19

priority_networks=192.168.8.111/24
  • 1
  • 2
  • 3
  • 4
  • 启动 FE
cd /opt/doris

./fe/bin/start_fe.sh --daemon
  • 1
  • 2
  • 3
  • 浏览器访问:http://192.168.8.111:8030/api/bootstrap

  • 成功提示

{"msg":"success","code":0,"data":{"replayedJournalId":0,"queryPort":0,"rpcPort":0,"version":""},"count":0}
  • 1

2)拷贝BE

FE 服务器:192.168.8.111

  • 拷贝BE安装包至BE服务器
scp -r /opt/doris/apache-doris-1.2.4.1-bin-x86_64/be root@192.168.8.112:/opt/doris/be
scp -r /opt/doris/apache-doris-1.2.4.1-bin-x86_64/be root@192.168.8.113:/opt/doris/be
  • 1
  • 2

3)安装BE

BE 服务器:192.168.8.112、192.168.8.113

  • 创建安装目录
mkdir /opt/doris
cd /opt/doris
  • 1
  • 2
  • 修改配置文件
vim ./be/conf/be.conf
  • 1
  • 修改内容:
  1. JDK 安装目录
  2. 绑定服务器 IP;注意区分不同服务器 IP
# JAVA_OPTS 上面一行
JAVA_HOME=/opt/java/jdk-11.0.19

priority_networks=192.168.8.112/24
  • 1
  • 2
  • 3
  • 4
  • 限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vim /etc/sysctl.conf
  • 1
  • 写入内容
vm.max_map_count=2000000
fs.file-max=6553560
  • 1
  • 2
  • 加载并应用配置文件
sysctl -p
  • 1
  • 启动 BE
./be/bin/start_be.sh --daemon
  • 1
  • 浏览器访问

    http://192.168.8.112:8040/api/health

    http://192.168.8.113:8040/api/health

  • 成功提示

{"status": "OK","msg": "To Be Added"}
  • 1

4)安装MySQL客户端

可忽略,使用 Navicat 替代

FE 服务器:192.168.8.111

  • 创建安装目录
mkdir /opt/mysql
cd /opt/mysql
  • 1
  • 2
  • 下载安装软件包
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-common-8.0.25-1.el7.x86_64.rpm 
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm 
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-libs-8.0.25-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-community-client-8.0.25-1.el7.x86_64.rpm
  • 1
  • 2
  • 3
  • 4
  • 安装 RPM 软件包
rpm -Uvh *.rpm --nodeps --force
  • 1

5)集群搭建

  • MySQL 客户端连接(无密码)
mysql -h 192.168.8.111 -P 9030 -uroot -p
  • 1
  • 新增两个 BE

弹性扩缩容 - Apache Doris

#--备用(删除BE节点):ALTER SYSTEM DROPP BACKEND "192.168.8.112:9050";
ALTER SYSTEM ADD BACKEND "192.168.8.112:9050";
ALTER SYSTEM ADD BACKEND "192.168.8.113:9050";
  • 1
  • 2
  • 3
  • 修改密码
SET PASSWORD FOR 'root' = PASSWORD('doris123');
  • 1

6)测试

  • 创建数据库(MySQL 客户端执行)
create database demo;
  • 1
  • 创建数据表
CREATE TABLE IF NOT EXISTS example_tb
(
    `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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 输出表结构
desc example_tb;
  • 1
  • 插入数据
insert into example_tb values
(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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 查询数据
SELECT * FROM example_tb;
  • 1

7)WebUI

  • 浏览器访问:http://192.168.8.111:8030
  • 账号:root
  • 密码:输入客户端修改的密码(doris123);默认无密码

5.服务自启动

服务自动拉起

1)配置FE自启动

  • 编辑 doris-fe.service
vim /etc/systemd/system/doris-fe.service
  • 1
  • 写入内容(根据实际情况修改 ExecStartExecStop
[Unit]
Description=Doris FE
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=root
Group=root
LimitCORE=infinity
LimitNOFILE=200000
Restart=on-failure
RestartSec=30
StartLimitInterval=120
StartLimitBurst=3
KillMode=none
ExecStart=/opt/doris/fe/bin/start_fe.sh --daemon 
ExecStop=/opt/doris/fe/bin/stop_fe.sh

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2)配置BE自启动

  • 编辑 doris-be.service
vim /etc/systemd/system/doris-be.service
  • 1
  • 写入内容(根据实际情况修改 ExecStartExecStop
[Unit]
Description=Doris BE
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=root
Group=root
LimitCORE=infinity
LimitNOFILE=200000
Restart=on-failure
RestartSec=30
StartLimitInterval=120
StartLimitBurst=3
KillMode=none
ExecStart=/opt/doris/be/bin/start_be.sh --daemon
ExecStop=/opt/doris/be/bin/stop_be.sh

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

3)启动服务

  • 重新加载配置
systemctl daemon-reload
  • 1
  • 启动服务
systemctl start doris-fe
systemctl start doris-be
  • 1
  • 2
  • 设置开机自启动
systemctl enable doris-fe
systemctl enable doris-be
  • 1
  • 2
  • 查询服务状态
systemctl status doris-fe
systemctl status doris-be
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/625257
推荐阅读
相关标签
  

闽ICP备14008679号