【快捷部署】001_Doris(2.0.3)

举报
云叔记 发表于 2024/03/12 14:32:12 2024/03/12
【摘要】 快捷部署系列,本期带来的是Doris,便于入门学习体验以及技术验证等场景。

一、环境准备及规划

硬件环境:

云环境 OS 规格 磁盘 网络 数量
华为云 Centos 7.6 4vCPUs、8GiB 通用型SSD 40 GiB 能访问公网 1 台

软件环境:

软件信息 版本 说明
JDK 1.8.0_151 Doris依赖
mysql_client 5.7.22 用于连接FE,执行ADD BACKEND操作。
Doris 2.0.3

目录规划:

目录 说明
/cxy 项目根级路径(可根据实际情况修改)
/cxy/bao 所有下载的tar包
/cxy/data 数据目录
/cxy/doris Doris安装目录
/cxy/jdk JDK安装目录
/cxy/mysql_client mysql解压目录

3.png


说明:

  • 本文意在快速部署并体验Doris,适用于学习及技术验证,生产环境请参考集群安全部署方式。
  • Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
  • Backend(BE),主要负责数据存储、查询计划的执行。



二、快速安装

快速安装脚本

#!/bin/bash
#################################################################################
# 作者:cxy-2024-03-11                                                           
# 功能:一键安装Doris 2.0                                              
#   
# 1、如需安装JDK1.8和mysql_client,请自行取消insatll_JDK和insatll_mysql_client的注释(删除#)
# 2、注意修改FE、BE网段、IP
# 3、最后添加 BE 节点到集群时,注意修改BE节点IP                                                                            
#################################################################################

################################# 变量定义,可根据实际情况修改 #################################
#项目简称,创建于部署的根级目录,所有绿色安装的软件都放到这个目录下
proj_jc=cxy
proj_dir=/${proj_jc}
#所有安装包
proj_bao_dir="${proj_dir}/bao"
#所有数据
proj_data_dir="${proj_dir}/data"
#JDK安装目录
jdk_dir="${proj_dir}/jdk"
#mysql_client安装目录
mysql_client_dir="${proj_dir}/mysql_client"

#Doris安装包目录
Doris_path=$proj_dir/doris
#元数据存放目录
FE_meta_dir=$proj_data_dir/doris_meta
#数据存储目录
BE_data_dir=$proj_data_dir/doris_data
#指定FE、BE网段(根据实际情况自行修改)
FE_subnet=10.100.1.0/24
BE_subnet=10.100.1.0/24
#BE节点的IP地址(根据实际情况自行修改)
BE_ip=10.100.1.47

#安装包下载地址(如有失效,可自行更换,如更换,注意下方对应解压路径名称也需要更换)
JDK_tar_url=https://repo.huaweicloud.cn/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz
mysql_client_tar_url=https://doris-build-hk.oss-cn-hongkong.aliyuncs.com/mysql-client/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
Doris_tar_url=https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.3-bin-x64.tar.gz



#初始化目录
init_dir(){
mkdir -p ${proj_bao_dir}
}

#安装JDK1.8 (如环境已有JDK,请勿安装,默认不执行)
insatll_JDK(){
mkdir ${jdk_dir}
cd ${proj_bao_dir}
wget $JDK_tar_url
cd ${proj_dir}
tar xf ${proj_bao_dir}/jdk-8u151-linux-x64.tar.gz -C ${jdk_dir}
cat >> /etc/profile <<EOF

export JAVA_HOME=${jdk_dir}/jdk1.8.0_151
export JRE_HOME=\${JAVA_HOME}/jre
export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib
export PATH=.:\${JAVA_HOME}/bin:\$PATH
EOF

source /etc/profile
}

#安装mysql-client,默认不执行
insatll_mysql_client(){
mkdir -p $mysql_client_dir
cd ${proj_bao_dir}
wget $mysql_client_tar_url -O mysql-5.7.22.tar.gz && tar -zxvf mysql-5.7.22.tar.gz -C $mysql_client_dir
}


#安装Doris
insatll_Doris(){
mkdir -p $Doris_path
mkdir -p $FE_meta_dir 
mkdir -p $BE_data_dir

cd ${proj_bao_dir}
wget $Doris_tar_url -O apache-doris.tar.gz && tar -zxvf apache-doris.tar.gz -C $Doris_path

#修改BE节点的配置文件,设置绑定IP地址、元数据目录
sed -i -e '$a # \npriority_networks = '$FE_subnet' \nmeta_dir = '$FE_meta_dir'' $Doris_path/apache-doris-2.0.3-bin-x64/fe/conf/fe.conf

#修改FE节点的配置文件,设置绑定IP地址、数据存储目录
sed -i -e '$a # \npriority_networks = '$BE_subnet' \nstorage_root_path = '$BE_data_dir'' $Doris_path/apache-doris-2.0.3-bin-x64/be/conf/be.conf

#启动FE节点
$Doris_path/apache-doris-2.0.3-bin-x64/fe/bin/start_fe.sh --daemon

#调整vm.max_map_count的大小(限制一个进程可以拥有的VMA(虚拟内存区域)的数量)
cat <<EOF>> /etc/sysctl.conf 
vm.max_map_count=2000000
EOF
#重新加载/etc/sysctl.conf文件
sysctl -p

#启动BE节点
$Doris_path/apache-doris-2.0.3-bin-x64/be/bin/start_be.sh --daemon



echo "Doris安装完成!请执行ADD BACKEND操作!"
}



init_dir
#insatll_JDK
#insatll_mysql_client
insatll_Doris

保存上面脚本内容到文件:install-doris.sh

$ vim install-doris.sh
$ chmod +x install-doris.sh
$ source install-doris.sh

#脚本执行成功后,连接mysql,执行ADD BACKEND操作。(注意修改IP!!)
$ cd /cxy/mysql_client/mysql-5.7.22-linux-glibc2.12-x86_64/bin
$ ./mysql -uroot -P9030 -h127.0.0.1 -e "ALTER SYSTEM ADD BACKEND '10.100.1.47:9050';"



三、验证

依赖环境验证

# JDK版本验证
$ source /etc/profile
$ java -version
# 回显版本标明安装成功

# mysql client验证
$ cd /cxy/mysql_client/mysql-5.7.22-linux-glibc2.12-x86_64/bin
$ ./mysql -uroot -P9030 -h127.0.0.1
# 成功连接即安装成功

Doris验证

验证1:连接mysql后,执行:show frontends\G;
IsMaster、Join 和 Alive 三列均为true,则表示节点正常。

2.png

验证2:mysql执行:SHOW BACKENDS\G
Alive : true表示节点运行正常。

1.png

验证3:浏览器访问:http://fe_eip:8030

4.png



四、初体验

默认登录账号:root,密码:无(注意这里是安全风险项!)

# 命令行连接mysql,创建一个数据库
mysql> create database demo;

访问浏览器UI界面,点击“Playground”,可以看到刚创建的数据库

image.png

# 创表语句
CREATE TABLE IF NOT EXISTS demo.example_tbl
(
    `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"
);

# 导入的csv测试数据
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
# 三个查询语句
select * from example_tbl;

select * from example_tbl where city='上海';

select city, sum(cost) as total_cost from example_tbl group by city;

# 具体验证过程,可参见视频
# 感谢淘客科技提供的实验资源

6.png

官方地址:https://doris.apache.org/zh-CN/docs/get-starting/quick-start

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。