找回密码
 会员注册
查看: 15|回复: 0

ARM架构下部署StarRocks3

[复制链接]

25

主题

0

回帖

76

积分

注册会员

积分
76
发表于 2024-10-12 19:50:29 | 显示全部楼层 |阅读模式
ARM架构下部署StarRocks3 398 一、什么是 StarRocksStarRocks 是一款新一代的极速全场景 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 目录下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 --daemon5、验证 FE 启动成功# 使用 jps 检查进程,如果没有 StarRocksFE 进程,可在 /opt/starRocks/log 下查看 fe.logjpsJpsStarRocksFE6、FE 节点日志自动清理vim /usr/local/bin/auto-del-3-days-ago-log.sh #!/bin/shfind /opt/starRocks/fe/log/ -mtime +3 -name "fe.*" -exec rm -rf {} \;7、FE 节点服务挂断拉起脚本vim /usr/local/bin/monitor_starrocks_fe.sh#!/bin/shpidFE=`ps aux | grep 'StarRocksFE' | grep -v 'grep' | awk '{print $2}'`if [[ !$pidFE ]];then   sh /opt/starRocks/fe/bin/start_fe.sh --daemonfi8、bash 赋权及定时任务设置chmod +x /usr/local/bin/auto-del-3-days-ago-log.shchmod +x /usr/local/bin/monitor_starrocks_fe.sh10 0 * * * /bin/bash /usr/local/bin/auto-del-3-days-ago-log.sh >/dev/null 2>&1*/2 * * * * /bin/bash /usr/local/bin/monitor_starrocks_fe.sh >/dev/null 2>&13.2.3 BE 节点部署1、替换 starrocks/allin1-ubuntu:latest 镜像内导出文件的 be 目录,使用 starrocks/artifacts-centos7:latest 镜像导出的 be 文件。2、复制 core-site.xml、hdfs-site.xml 和 hive-site.xml 至 /be/conf 目录下。cp /opt/hadoop3/etc/hadoop/core-site.xml /opt/starRocks/be/conf/cp /opt/hadoop3/etc/hadoop/hdfs-site.xml /opt/starRocks/fe/conf/cp /opt/hive/conf/hive-site.xml /opt/starRocks/be/conf/3、修改 be.conf 文件priority_networks 需修改为各 BE 节点的 ip 地址。cd /opt/starRocks/bemkdir datavim conf/be.confpriority_networks=node02/24load_process_max_memory_limit_percent=50mem_limit=75%storage_root_path=/opt/starRocks/be/data4、修改 start_be.sh 文件cd /opt/starRocks/be/binvim start_be.shexport JAVA_HOME=/{JAVA 安装目录}/zulu11.66.19-ca-jdk11.0.20.1-linux_aarch645、BE 节点启动各个节点需单独启动cd /opt/starRocks/be/bin./start_be.sh --daemon6、验证 BE 启动成功ps aux | grep starrocks_be # 会看到一个 starrocks_be 的进程,如果没有可在 /opt/starRocks/be/log 下查看 be.INFO 日志7、BE 节点日志自动清理vim /usr/local/bin/auto-del-3-days-ago-log.sh #!/bin/shfind /opt/starRocks/be/log/ -mtime +3 -name "be.*" -exec rm -rf {} \;8、BE 节点服务挂断拉起脚本vim /usr/local/bin/monitor_be.sh#!/bin/shpidBE=`ps aux | grep 'starrocks_be' | grep -v 'grep' | awk '{print $2}'`if [[ !$pidBE ]];then   sh /opt/starRocks/be/bin/start_be.sh --daemonfi9、bash 赋权及定时任务设置chmod +x /usr/local/bin/auto-del-3-days-ago-log.shchmod +x /usr/local/bin/monitor_starrocks_be.sh10 0 * * * /bin/bash /usr/local/bin/auto-del-3-days-ago-log.sh >/dev/null 2>&1*/2 * * * * /bin/bash /usr/local/bin/monitor_starrocks_be.sh >/dev/null 23.3 部署验证FE 和 BE 节点均部署完成并启动完成后,在 FE 节点通过 Mysql 客户端进行部署验证及相关设置。1、验证 FE 可用# FE 节点地址,初始无密码,非 3306 端口需指定地址 127.0.0.1mysql -h 127.0.0.1 -P9030 -uroot -p2、添加 BE 节点以下操作均已完成第一步,成功连接 FE。# 添加 BE,所有 BE 都添加ALTER SYSTEM ADD BACKEND "node02:9050";ALTER SYSTEM ADD BACKEND "node03:9050";ALTER SYSTEM ADD BACKEND "node04:9050";# 检查 BE, 所有 Alive: true,否则 BE 有问题SHOW ROC '/backends'\G# 检查 FE show proc '/frontends'\G# 设置密码SET ASSWORD for root = ASSWORD('密码');# 按需选择是否创建初始数据库,仅用作示例新建 ads 库create database ads;# 按需选择是否创建 Hive 外部 catalogCREATE EXTERNAL CATALOG hivePROPERTIES ("type" = "hive","hive.metastore.uris"="thrift://{hivemetastore}");# 检查 catalogshow catalogs;# 验证 Hive catalog 使用是否正常四、总结本文讲解了如何在 ARM 架构下部署 StarRocks3 的详细步骤。在科技高速发展的当下,ARM 架构由于其开源性和功耗上的优异表现正在受到越来越多的关注,大数据相关的各种组件也纷纷推出了基于 ARM 架构的版本用于更好的支持用户体验。由于 StarRocks3 并无官方的 ARM 版本,通过查询网上资料也并无详细完整的相关文档,所以本文也仅是利用 Docker 镜像最终实现的部署方案,从运行的结果来看符合预期。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-25 13:26 , Processed in 0.313801 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表