【快捷部署】001_Doris(2.0.3)

📣【快捷部署系列】001期信息

编号选型版本操作系统部署形式部署模式
001Doris2.0.3CentOS 7.Xtar包单机

一、环境准备及规划


硬件环境:

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

软件环境:

软件信息版本说明
JDK1.8.0_151Doris依赖
mysql_client5.7.22用于连接FE,执行ADD BACKEND操作。
Doris2.0.3

目录规划:

目录说明
/cxy项目根级路径(可根据实际情况修改)
/cxy/bao所有下载的tar包
/cxy/data数据目录
/cxy/dorisDoris安装目录
/cxy/jdkJDK安装目录
/cxy/mysql_clientmysql解压目录

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.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.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

上层应用业务对实时数据的需求,主要包含两部分内容:1、 整体数据的实时分析。2、 AB实验效果的实时监控。这几部分数据需求,都需要进行的下钻分析支持,我们希望能够建立统一的实时OLAP数据仓库,并提供一套安全、可靠的、灵活的实时数据服务。目前每日新增的曝光日志达到几亿条记录,再细拆到AB实验更细维度时,数据量则多达上百亿记录,多维数据组合下的聚合查询要求秒级响应时间,这样的数据量也给团队带来了不小的挑战。OLAP层的技术选型,需要满足以下几点:1:数据延迟在分钟级,查询响应时间在秒级2:标准SQL交互引擎,降低使用成本3:支持join操作,方便维度增加属性信息4:流量数据可以近似去重,但订单行要精准去重5:高吞吐,每分钟数据量在千W级记录,每天数百亿条新增记录6:前端业务较多,查询并发度不能太低通过对比开源的几款实时OLAP引擎,可以发现Doris和ClickHouse能够满足上面的需求,但是ClickHouse的并发度太低是个潜在的风险,而且ClickHouse的数据导入没有事务支持,无法实现exactly once语义,对标准SQL的支持也是有限的。所以针对以上需求Doris完全能解决我们的问题,DorisDB是一个性能非常高的分布式、面向交互式查询的分布式数据库,非常的强大,随着互联网发展,数据量会越来越大,实时查询需求也会要求越来越高,DorisDB人才需求也会越来越大,越早掌握DorisDB,以后就会有更大的机遇。本课程基于真实热门的互联网电商业务场景为案例讲解,具体分析指标包含:AB版本分析,下砖分析,营销分析,订单分析,终端分析等,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。整个课程,会带大家实践一个完整系统,大家可以根据自己的公司业务修改,既可以用到项目中去,价值是非常高的。本课程包含的技术:开发工具为:IDEA、WebStormFlink1.9.0DorisDBHadoop2.7.5Hbase2.2.6Kafka2.1.0Hive2.2.0HDFS、MapReduceFlume、ZookeeperBinlog、Canal、MySQLSpringBoot2.0.8.RELEASESpringCloud Finchley.SR2Vue.js、Nodejs、Highcharts、ElementUILinux Shell编程等课程亮点:1.与企业接轨、真实工业界产品2.DorisDB高性能分布式数据库3.大数据热门技术Flink4.支持ABtest版本实时监控分析5.支持下砖分析6.数据分析涵盖全端(PC、移动、小程序)应用7.主流微服务后端系统8.天级别与小时级别多时间方位分析9.数据库实时同步解决方案10.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS+ElementUI11.集成SpringCloud实现统一整合方案12.互联网大数据企业热门技术栈13.支持海量数据的实时分析14.支持全端实时数据分析15.全程代码实操,提供全部代码和资料16.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值