鼠扑 发表于 2024-12-19 00:50:15

StarRock3.3 安装部署(存算分离、存算一体保姆式教程)

服务器前置要求:
1、内存>=32GB
2、JDK 8 is not supported, please use JDK 11 or 17

1、安装

wget https://releases.starrocks.io/starrocks/StarRocks-3.3.0.tar.gz
tar zxvf StarRocks-3.3.0.tar.gz

2、FE服务启动

2.1 设置FE节点(默认设置,如果是自定义,可以修改设置,否则设置无需变动fe/conf/fe.conf
meta_dir = ${STARROCKS_HOME}/meta
mkdir ${STARROCKS_HOME}/meta
2.2 java环境安装fe/conf/fe.conf
如果本地默认是java8环境,可以单独对sr进行环境设置
# Replace <path_to_JDK> with the path where the chosen JDK is installed.
JAVA_HOME = /root/jdk-17.0.11
2.3 验证端口服务是否需要修改


[*]8030: FE HTTP server port (http_port)
[*]9020: FE Thrift server port (rpc_port)
[*]9030: FE MySQL server port (query_port)
[*]9010: FE internal communication port (edit_log_port)
[*]6090: FE cloud-native metadata server RPC listen port (cloud_native_meta_port)
实行下面下令:
netstat -tunlp | grep 8030
netstat -tunlp | grep 9020
netstat -tunlp | grep 9030
netstat -tunlp | grep 9010
netstat -tunlp | grep 6090
如果出现端口冲突,需要修改设置fe.conf
我本地8030端口冲突,修改fe.conf设置如下:
http_port = 8040
2.4 存算分离模式设置修改(存算一体不需要修改此设置) 
run_mode = shared_data
cloud_native_storage_type = HDFS
#cloud_native_meta_port = 6090
storage_root_path = hdfs://xxx/user/starrocks/
2.5 启动FE服务(sr3.3需要 jdk11大概jdk17,建议提前安装)
./bin/start_fe.sh --daemon
./bin/stop_fe.sh --daemon
2.6 验证服务
2.6.1 检察FE节点服务是否正常
cat fe/log/fe.log | grep thrift
2024-07-28 15:35:12.676+08:00 INFO (UNKNOWN 10.177.54.201_9010_1722151478821(-1)|1) thrift server started with port 9020
2.6.2 检察web ui是否正常
在欣赏器访问http://ip:http_port(默认 http_port 为 8030),用户名为 root,密码为空

3、BE服务启动

-存算分离模式服务不需要启动,CN的设置需要和BE设置保持一致
3.1 创建数据存储目录
# Replace <storage_root_path> with the data storage directory you want to create.
mkdir -p <storage_root_path>
3.2 服务端口检测


[*]9060: BE Thrift server port (be_port)
[*]8040: BE HTTP server port (be_http_port)
[*]9050: BE heartbeat service port (heartbeat_service_port)
[*]8060: BE bRPC port (brpc_port)
[*]9070: An extra agent service port for BE and CN (starlet_port)
检测BE服务的端口是否被占用
netstat -tunlp | grep 9060
netstat -tunlp | grep 8040
netstat -tunlp | grep 9050
netstat -tunlp | grep 8060
netstat -tunlp | grep 9070
如果出现端口冲突对应的服务端口需要做调解,否则使用默认端口部署
3.3  修改be设置be/conf/be.conf
# Replace <storage_root_path> with the data storage directory you want to create.
mkdir -p <storage_root_path>
storage_root_path = /root/StarRocks-3.3.0-rc01/be/storage
3.4 设置单独的java环境be/conf/be.conf
如果本地默认是java8环境,可以单独对sr进行环境设置
# Replace <path_to_JDK> with the path where the chosen JDK is installed.
JAVA_HOME = /root/jdk-17.0.11
3.5 启动BE服务
./be/bin/start_be.sh --daemon
3.6 验证BE服务是否启动正常
cat be/log/be.INFO | grep heartbeat
I0728 17:26:12.504830 465572 thrift_server.cpp:383] heartbeat has started listening port on 9050
I0728 17:26:12.504838 465572 starrocks_be.cpp:267] BE start step 13: start heartbeat server successfully

4、启动CN服务

(存算分离模式)需要启动,请包管BE服务在同一节点没有启动
4.1 CN 设置通BE设置,保持be/conf/be.conf和be/conf/cn.conf一致
增长:
storage_root_path = /root/StarRocks-3.3.0-rc01/be/storage
JAVA_HOME = /root/jdk-17.0.11
4.2 启动CN服务
./be/bin/start_cn.sh --daemon
4.2 查抄CN服务是否正常
cat be/log/cn.INFO | grep heartbeat
I0728 17:48:29.443526 474653 thrift_server.cpp:383] heartbeat has started listening port on 9050
I0728 17:48:29.443535 474653 starrocks_be.cpp:267] CN start step 13: start heartbeat server successfully
5、集群部署

5.1 在mysql客户端连接fe服务
# Replace <fe_address> with the IP address (priority_networks) or FQDN
# of the Leader FE node, and replace <query_port> (Default: 9030)
# with the query_port you specified in fe.conf.
mysql -h <fe_address> -P<query_port> -uroot
然后实行下面下令,可以看到FE节点的状态
SHOW PROC '/frontends'\G
https://i-blog.csdnimg.cn/direct/d1924b0872e24c03894bdc6de91e088b.png

5.2  把BE节点加入到集群中来
-- Replace <be_address> with the IP address (priority_networks) 
-- or FQDN of the BE nodes, and replace <heartbeat_service_port> 
-- with the heartbeat_service_port (Default: 9050) you specified in be.conf.
ALTER SYSTEM ADD BACKEND "<be_address>:<heartbeat_service_port>";
5.3 检察BE节点状态-存算分离状态可以不消加入
SHOW PROC '/backends'\G
https://i-blog.csdnimg.cn/direct/2d020ad69d6a4a1bb80c536d79bf2619.png
5.4 把CN节点加入到集群
-- Replace <cn_address> with the IP address (priority_networks) 
-- or FQDN of the CN node, and replace <heartbeat_service_port> 
-- with the heartbeat_service_port (Default: 9050) you specified in cn.conf.
ALTER SYSTEM ADD COMPUTE NODE "<cn_address>:<heartbeat_service_port>";

使用下面下令检察
SHOW PROC '/compute_nodes'\G
https://i-blog.csdnimg.cn/direct/5d23f8c22f7f491b96ab37cc0c6589ee.png
看到Alive都是true后表示服务加入成功
6、hdfs相干设置





[*] 如果 HDFS 集群开启了高可用(High Availability,简称为“HA”)模式,则需要将 HDFS 集群中的 hdfs-site.xml 文件放到每个 FE 的 $FE_HOME/conf 路径下、以及每个 BE 的 $BE_HOME/conf 路径(或每个 CN 的 $CN_HOME/conf 路径)下。
[*] 如果 HDFS 集群设置了 ViewFs,则需要将 HDFS 集群中的 core-site.xml 文件放到每个 FE 的 $FE_HOME/conf 路径下、以及每个 BE 的 $BE_HOME/conf 路径(或每个 CN 的 $CN_HOME/conf 路径)下
7、hadoop集群开启kerbos情况下,需要进行设置修改



[*]在每个 FE 和 每个 BE(或 CN)上实行 kinit -kt keytab_path principal 下令,从 Key Distribution Center (KDC) 获取到 Ticket Granting Ticket (TGT)。实行下令的用户必须拥有访问 HMS 和 HDFS 的权限。注意,使用该下令访问 KDC 具有时效性,因此需要使用 cron 定期实行该下令。
[*]在每个 FE 的 $FE_HOME/conf/fe.conf 文件和每个 BE 的 $BE_HOME/conf/be.conf 文件(或每个 CN 的 $CN_HOME/conf/cn.conf 文件)中添加 JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"。其中,/etc/krb5.conf 是 krb5.conf 文件的路径,可以根据文件的实际路径进行修改
8、创建hive catalog

CREATE EXTERNAL CATALOG hive_catalog
PROPERTIES ("type"="hive",
"enable_metastore_cache" = "true",
"metastore_cache_refresh_interval_sec"="30",
            "hive.metastore.type" = "hive",
            "hive.metastore.uris"="thrift://198.28.1.83:9083,thrift://198.28.1.84:9083");
            
SHOW CATALOGS;
SHOW DATABASES FROM hive_catalog;
SELECT * from hive_catalog.ods01.ods_uf20_hs_asset_clientInfo LIMIT 10;

9、其他下令

检察盘算节点
 show compute nodes;
检察fe;
show frontends;
检察be;
show backends;

删除catalog
drop catalog hive_cata;
10、常见题目
10.1 
2024-07-29 23:08:45.587+08:00 ERROR (starrocks-mysql-nio-pool-4|2463) Failed to listDbNames on catalog hive_cata
com.starrocks.connector.exception.StarRocksConnectorException: Failed to getAllDatabases, msg: null
缘故原由:集群初始化时为存算一体,SR不支持随意变动存算一体和存算分离,需要手动修改设置
办理方案:采取存算模式下,FE设置需要变动
run_mode = shared_data
cloud_native_storage_type = HDFS
storage_root_path = hdfs://xxx/user/starrocks/
并且手动修改VERION信息的run_mode使之和设置保持一致
vim /data/store/StarRocks/meta/image/VERSION
run_mode = shared_data


社区文档参考:
Deploy StarRocks manually | StarRocks
Hive catalog | StarRocks
ALTER SYSTEM | StarRocks

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: StarRock3.3 安装部署(存算分离、存算一体保姆式教程)