zl程序教程

您现在的位置是:首页 >  Java

当前栏目

StarRocks支持元数据加速桶配置(S3协议)

2023-02-25 18:20:12 时间

注,本次使用腾讯云EMR的 StarRocks-V1.1.0  ,starrocks-2.2.2

StarRocks 自带的cos jar包版本比较老( hadoop-cos-2.8.5-5.9.3.jar、cos_api-bundle-5.6.35.jar),已经不支持访问开启元数据加速的存储桶。使用会报错:Caused by: java.io.IOException: Cannot rename /export/customer/__starrocks_export_tmp_2ebb2a29-9181-11ed-b129-525400ae9a9f/data_2ebb2a29-9181-11ed-b129-525400ae9a9f_0_11_0.csv.1673421963372 to /export/customer/data_2ebb2a29-9181-11ed-b129-525400ae9a9f_0_11_0.csv, /export/customer is a file

需要更新cos的相关jar,并做相关配置来支持访问。

更新jar包

https://github.com/tencentyun/hadoop-cos/releases 上选择较新的jar包,本次选择使用 cos_api-bundle-5.6.69.jar 、hadoop-cos-2.8.5-8.1.7.jar

在StarRocks集群的Broker节点,也就是  StarRocksBroker ,将之前的jar包替换为本次的jar。替换操作参考如下:

#创建备份目录
mkdir /data/emr/starrocks/back

#进行备份
mv /usr/local/service/starrocks/lib/broker/cos_api-bundle-5.6.35.jar /data/emr/starrocks/back/
mv /usr/local/service/starrocks/lib/broker/hadoop-cos-2.8.5-5.9.3.jar /data/emr/starrocks/back/


#进行替换
chown  hadoop.hadoop  cos_api-bundle-5.6.69.jar  hadoop-cos-2.8.5-8.1.7.jar 
chmod 644  cos_api-bundle-5.6.69.jar  hadoop-cos-2.8.5-8.1.7.jar 

mv cos_api-bundle-5.6.69.jar /usr/local/service/starrocks/lib/broker/
mv  hadoop-cos-2.8.5-8.1.7.jar   /usr/local/service/starrocks/lib/broker/

添加配置

在StarRocks控制台的 配置管理中的 core-site.xml 文件中添加相关配置

<property>
    <name>fs.AbstractFileSystem.cosn.impl</name>
    <value>org.apache.hadoop.fs.CosN</value>
</property>
​
<property>
    <name>fs.cosn.impl</name>
    <value>org.apache.hadoop.fs.CosFileSystem</value>
</property>
​
<property>
    <name>fs.cosn.bucket.region</name>
    <value>ap-guangzhou</value>
    <description>需要修改为元数据加速的存储桶对应的地域,本次使用的是广州地域</description>
</property>
​
<property>
    <name>fs.cosn.posix_bucket.fs.impl</name>
    <value>org.apache.hadoop.fs.CosNFileSystem</value>
</property>

修改完成后,重启 StarRocksBroker 服务,重启后即可。

验证

将SR中的数据拷贝到ofs上,参考命令如下:

EXPORT TABLE customer 
TO "cosn://wangxpofsn-xxxx/export/customer/"
WITH BROKER "Broker_StarRocks"
(
"fs.cosn.userinfo.secretId" = "xxxxxx",
"fs.cosn.userinfo.secretKey" = "xxxxxx",
"fs.cosn.bucket.endpoint_suffix" = "cos.ap-guangzhou.myqcloud.com"
);

可以使用 SHOW EXPORT; 来查看任务运行情况 ,运行完成后可以在相关的目录中看到文件

参考:

https://cloud.tencent.com/document/product/436/71550#3.-s3-.E5.8D.8F.E8.AE.AE.E8.AE.BF.E9.97.AE.E6.96.B9.E5.BC.8F.E5.BF.85.E5.A1.AB.E9.85.8D.E7.BD.AE.E9.A1.B9