【快捷部署】001_Doris(2.0.3)
【摘要】 快捷部署系列,本期带来的是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解压目录 |
说明:
- 本文意在快速部署并体验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.com/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:mysql执行:SHOW BACKENDS\G
Alive : true表示节点运行正常。
验证3:浏览器访问:http://fe_eip:8030
四、初体验
默认登录账号:root,密码:无(注意这里是安全风险项!)
# 命令行连接mysql,创建一个数据库
mysql> create database demo;
访问浏览器UI界面,点击“Playground”,可以看到刚创建的数据库
# 创表语句
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;
# 具体验证过程,可参见视频
# 感谢淘客科技提供的实验资源
官方地址:https://doris.apache.org/zh-CN/docs/get-starting/quick-start
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)