ARM架构下部署StarRocks3,你学会了吗?

一、什么是 StarRocks StarRocks 是一款新一代的极速全场景 MPP(Massively Parallel Processing)数据库,通过向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现的新一代大数据数据库,同时它兼容 MySQL5.7 的协议,支持标准 SQL 语法,极大降低了使用成本 。作为大数据数据库 , StarRocks 支持 Hive 作为外部 catalog 实现与 Hadoop 的直接对接,同时也支持将数据直接存储用于高效计算 。
二、X86 和 ARM众所周知,当前 CPU 的主流系统架构分为 X86 架构和 ARM 架构 。其中 X86 架构的所有权归属于 Intel 公司 , 而 ARM 架构则是开源的 。
X86 架构的系统推出已经近 30 年,在这 30 年来互联网领域发展飞快,X86 架构也伴随着互联网的腾飞经过了高速发展的黄金时期 , 用户的应用、软件配套、软件开发等工具的配套和兼容都非常成熟,但由于 X86 架构的所有权问题,所有使用该架构的用户都需向 Intel 公司付费方可使用 。
而开源的 ARM 架构在近年来尤为受到关注,面对当前日益复杂的国际环境以及基于 ARM 架构本身在功耗上的优异表现,国内外大量企业自研基于 ARM 架构的服务器芯片,越来越多的应用和软件配套也适配 ARM 架构 。
三、StarRocks 部署StarRocks 部署需单独部署 FE 节点和 BE 节点,其中 FE 节点是 StarRocks 的前端节点,负责管理元数据,管理客户端连接 , 进行查询规划,查询调度等;BE 节点是 StarRocks 的后端节点,负责数据存储、SQL 执行等 。
当前 , 由于 StarRocks 的 BE 节点部署强依赖 X86 架构下的 AVX2 指令集(StarRocks 向量化引擎强依赖),所以当前 StarRocks 官方针对 ARM 架构更多的是建议使用 Docker 部署或修改编译脚本关闭 AVX2 指令集重新打包部署,并未提供官方的稳定版本 。针对当前情况以及实际的业务发展需求,我们评估决定使用官方提供的 Docker 镜像内的配置文件进行 ARM 架构下的部署 。
本文的 StarRocks3 部署是基于已搭建完成 Hadoop3 集群条件下进行 , 若还未搭建 Hadoop 集群,请先搭建 Hadoop 集群再进行后续部署 。
3.1 Docker 镜像内配置文件获取使用官方提供的 starrocks/artifacts-centos7:latest 镜像内文件进行部署 。
3.1.1 拉取镜像# 拉取镜像docker pull starrocks/artifacts-centos7:latest# 启动镜像docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 --privileged=true -itd --name starrocks-art starrocks/artifacts-centos73.1.2 镜像内文件导出镜像内文件均在/release 目录下
# 进入镜像内docker exec -it starrocks-art shmkdir starRockscp -r be_artifacts/be starRocks/cp -r fe_artifacts/fe starRocks/cp -r broker_artifacts/Apache_hdfs_broker starRocks/# 文件压缩tar -zcvf starRocks.tar.gz starRocks/# 文件导出docker cp artifacts-art:/release/starRocks.tar.gz /usr/local/3.2 节点部署部署需要 4 台机器,1 台机器部署 FE,3 台机器部署 BE 。接下去以 node01、node02、node03、node04 区分 。
StarRocks 文件默认安装路径为 /opt/starRocks 。
3.2.1 apache_hdfs_borker 配置替换该目录下的 hdfs-site.xml 文件 。
cp /opt/hadoop3/etc/hadoop/hdfs-site.xml /opt/starRocks/apache_hdfs_borker/3.2.2 FE 节点部署在 node01 节点部署 FE,同时在该节点需搭建 Mysql 用于连接测试搭建完成后的 StarRocks 。
1、复制 core-site.xml、hdfs-site.xml 和 hive-site.xml 至 /fe/conf 目录下
【ARM架构下部署StarRocks3,你学会了吗?】cp /opt/hadoop3/etc/hadoop/core-site.xml /opt/starRocks/fe/conf/cp /opt/hadoop3/etc/hadoop/hdfs-site.xml /opt/starRocks/fe/conf/cp /opt/hive/conf/hive-site.xml /opt/starRocks/fe/conf/2、 修改 fe.conf 文件
# 新建 meta 文件夹cd /opt/starRocks/femkdir metavim conf/fe.conf# 添加meta_dir=/opt/starRocks/fe/metapriority.NETworks=node01/24  enable_udf=true3、start_fe.sh 脚本修改
由于 StarRocks3 版本强依赖 JAVA11 以上版本,但搭建的 Hadoop3 集群默认使用 JAVA8 的版本,所以需手动指定 StarRocks3 使用的 JAVA 版本,本文使用 zulu11.66.19-ca-jdk11.0.20.1-linux_aarch64 版本 。
# 第一行添加 JAVA_HOMEexport JAVA_HOME=/{JAVA 安装目录}/zulu11.66.19-ca-jdk11.0.20.1-linux_aarch64# 第 108 行需手动修改 JAVA_VERSIONJAVA_VERSION=114、FE 节点启动
cd /opt/starRocks/fe/bin./start_fe.sh --daemon


推荐阅读