记 Doris 回归测试S3导入load_parallelism > 1

news2024/12/25 5:23:19

增加load_parallelism > 1的S3导入用例,测试导入时切分输入文件的逻辑。

这里有几个隐性的问题点(坑):

1、导入的文件一定要大,一般大于128M,否则,即使设置了 load_parallelism > 1 也不会doris的逻辑也不会切分文件并且多线程导入。

应该是min_bytes_per_broker_scanner这个参数控制的,默认是64M。

2、操作系统CA证书路径问题

回归测试里的S3导入用例,一般是从regression-conf.groovy里的配置变量获取endpoint、bucket、ak、sk,其中endpoint是社区流水线的域名,如果在LOAD语句里直接使用域名,那么默认使用https协议连接S3服务,例如:

) WITH S3 (
    "AWS_ENDPOINT" = "cos.ap-beijing.myqcloud.com",
    "AWS_ACCESS_KEY" = "AKIDd9RVMzIOI0V7Wlnbr9JG0WrhJk28zc2H",
    "AWS_SECRET_KEY" = "4uWxMhqnW3Plz97sPjqlSUXO1RhokRuO",
    "AWS_REGION" = "ap-beijing"
)

也可以在域名前加http或https来指定协议:

"AWS_ENDPOINT" = "http://cos.ap-beijing.myqcloud.com"

"AWS_ENDPOINT" = "https://cos.ap-beijing.myqcloud.com"

注意,BE底层是用AWS SDK访问S3服务的,而 AWS SDK 默认是走https,就是说这里如果只传入域名,走的是https协议使用端口443。

走http,LOAD成功,但是,走https失败,报错找不到CA证书(CA公钥):

[IO_ERROR]failed to read from s3://doris-build-1308700295/regression/load/data/test_load_parallelism.csv: curlCode: 77, Problem with the SSL CA cert (path? access rights?)

这个问题搞了好几天,也有对CA理解不够透彻的原因,也有对doris底层代码理解不透彻的原因。

经社区小伙伴提示,可能时CA证书的路径不对,doris找不到,调试doris BE端代码发现,doris和S3通讯用的是aws sdk,endpoint没有处理直接传给aws client,aws client再去选择https协议,找CA证书,而我没有aws sdk代码,不知道aws sdk到哪里找CA证书。

而我用aws cli是可以访问cos.ap-beijing.myqcloud.com并且读取对象的,使用的也是https协议。(后来我猜测aws cli应该是自带CA证书的)

并且curl可以访问https网站,例如https://www.baidu.com,也就是说curl可以进行https通讯,而进行https通讯必须要CA证书,那么curl的CA证书在哪呢?在网上搜搜搜,用 curl -vvI 访问一个https网址可以打印出来:

这里可以看到我机器上的CA证书路径:

/etc/pki/tls/certs/ca-bundle.crt

那么 aws sdk 寻找的CA证书路径是啥,是不是把上面这个文件,放到aws sdk寻找的路径就可以了?

从社区小伙伴那里了解到,这个路径可能和操作系统相关,而我用的是openeuler。

我想到了编译doris时用thirdparty库,里面的bin目录下也有个curl,这个curl寻找CA证书的路径,是不是与doris相同,毕竟都是来自社区的嘛~

我就试了一下这个来自社区的curl:

./thirdparty/installed/bin/curl -vvI https://www.baidu.com

发现它寻找的CA证书的路径是:

/etc/ssl/certs/ca-certificates.crt 

而我本机这个路径下,没有证书文件,尝试拷贝我本机自带的curl用的CA证书,到这个路径:

cp /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt 

再执行S3 LOAD,走https就成功了:

LOAD LABEL part_9744bffa3ea1e (
    DATA INFILE("s3://doris-build-1308700295/regression/load/data/test_load_parallelism.csv")
    INTO TABLE paral_load
    COLUMNS TERMINATED BY ","
    FORMAT AS "CSV"
)
WITH S3 (
    "AWS_ENDPOINT" = "cos.ap-beijing.myqcloud.com",
    "AWS_ACCESS_KEY" = "AKIDd9RVMzIOI0V7Wlnbr9JG0WrhJk28zc2H",
    "AWS_SECRET_KEY" = "4uWxMhqnW3Plz97sPjqlSUXO1RhokRuO",
    "AWS_REGION" = "ap-beijing"
)
PROPERTIES(
    "load_parallelism" = "3",
    "timeout" = "3600"
);

当然这里还有个小问题,就是时而成功,时而失败,经社区小伙伴提醒,应该是网络延迟问题,调大be.conf里的参数为:

buffered_reader_read_timeout_ms = 2000000ms

完美解决,不会有失败了 !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1267939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础项目开发1:量产工具——输入系统(三)

前言: 前面我们已经实现了显示系统,现在我们来实现输入系统,与显示系统类似,下面让我们一起来对输入系统进行学习搭建吧 目录 一、数据结构抽象 1. 数据本身 2. 设备本身: 3. input_manager.h 二、触摸屏编程 to…

甘草书店记:2023年10月15日 星期日 「等待也是人生的大事」

我常说,最好的人生是刚刚好。 财富不可少,也不必多,够用就好。爱情不要晚,也不要早,恰好就好。 可是人生活在社会中、自然中,不会万事由己。所以,等待是人生的必修课。 书店的装修设计和LOGO…

2023-11-29 LeetCode每日一题(无限集中的最小数字)

2023-11-29每日一题 一、题目编号 2336. 无限集中的最小数字二、题目链接 点击跳转到题目位置 三、题目描述 现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。 实现 SmallestInfiniteSet 类: SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包…

Matlab 在一个文件中调用另一个文件中的函数

文章目录 Part.I IntroductionPart.II 方法Chap.I A 文件中只有一个函数Chap.II A 文件中有多个函数 Part.I Introduction 本文介绍一下在脚本文件 B 中调用文件 A 中的函数的方法。 Part.II 方法 目的:在文件B.m调用A.m中的函数 默认两个文件在一个文件夹下&…

汽车销售简历模板(精选19篇)

汽车销售简历(在线制作下载):百度幻主简历 汽车销售求职简历1: 求职意向 求职类型:全职 意向岗位:汽车销售顾问 意向城市:广东广州 薪资要求:面议 求职状态&…

2948. 交换得到字典序最小的数组 (分组排序)

Problem: 2948. 交换得到字典序最小的数组 文章目录 题目思路Code 题目 给你一个下标从 0 开始的 正整数 数组 nums 和一个 正整数 limit 。 在一次操作中&#xff0c;你可以选择任意两个下标 i 和 j&#xff0c;如果 满足 |nums[i] - nums[j]| < limit &#xff0c;则交换…

用bat制作图片马——一句话木马

效果图 代码 ECHO OFF TITLE PtoR MODE con COLS55 LINES25 color 0A:main cls echo.当前时间&#xff1a;%date% %time% echo.欢迎使用图片马制作工具 echo.请确保图片和php在同一路径下 echo.echo 请将图像文件拖放到此窗口并按 Enter&#xff1a; set /p "imagefile&q…

C语言——深入理解指针(3)

目录 1. 字符指针 2. 数组指针 2.1 数组指针变量 2.2 数组指针变量的初始化 3.二维数组传参&#xff08;本质&#xff09; 4. 函数指针 4.1 函数指针变量的创建 4.2 函数指针的使用 4.3 typedef 5. 函数指针数组 6. 转移表&#xff08;函数指针数组的使用&#xff…

PlantUML语法(全)及使用教程-类图

目录 1. 类图1.1、什么是类图1.2、元素声明1.3、类之间的关系1.4、关系上的标签1.5、在元素名称和关系标签中使用非字母1.6、添加方法 1. 类图 类图的设计语法与编程语言的传统语法相似。这种相似性为开发人员提供了一个熟悉的环境&#xff0c;从而使创建图表的过程更简单、更直…

如何集成一个TypeScript开发环境?

首先要安装个node.js。Node.js (nodejs.org) 然后我们随便建一个文件夹&#xff0c;并且打开它运行到终端 然后再运行命令&#xff1a; npm install typescript -g 成功后 尝试使用 tsc -v 查看版本 接下来再使用命令&#xff1a; tsc --init 我们在.ts文件中尝试输出一些…

UCSC基因组浏览器用法

UCSC基因组浏览器用法 UCSC基因组浏览器是一个强大的在线工具&#xff0c;主要用于查看和分析多种生物的基因组数据。这个浏览器最初是由加利福尼亚大学圣克鲁兹分校的生物信息学家和计算生物学家开发的&#xff0c;旨在为科研人员提供一个易于访问和使用的界面&#xff0c;用于…

Unity中Shader变体优化

文章目录 前言一、在Unity中查看变体个数&#xff0c;以及有哪些变体二、若使用预定义的变体太多&#xff0c;我们只使用其中的几个变体&#xff0c;我们该怎么做优化一&#xff1a;可以直接定义需要的那个变体优化二&#xff1a;使用 skip_variants 剔除不需要的变体 三、变体…

【傻瓜级JS-DLL-WINCC-PLC交互】8.DLL读写WINCC连接的PLC数据

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

Java实现简单飞翔小鸟游戏

一、创建新项目 首先创建一个新的项目&#xff0c;并命名为飞翔的鸟。 其次在飞翔的鸟项目下创建一个名为images的文件夹用来存放游戏相关图片。 用到的图片如下&#xff1a;0~7&#xff1a; bg&#xff1a; column&#xff1a; gameover&#xff1a; ground&#xff1a; st…

电能量数据采集终端是电表采集器吗?

随着科技的发展和能源管理的日益精细化&#xff0c;电能量数据采集终端——电表采集器在保障电力系统稳定运行、实现节能减排等方面发挥着越来越重要的作用。下面&#xff0c;小编来为大家全面介绍电表采集器的功能、应用场景及其在我国能源领域的价值。 一、电表采集器的定义与…

现在嵌入式培训现在太火爆了过几年,这方面的人才会不会饱和呢?

现在嵌入式培训现在太火爆了&#xff0c;过几年&#xff0c;这方面的人才会不会饱和呢&#xff1f; 现在嵌入式培训现在太火爆了&#xff0c;过几年&#xff0c;这方面的人才会不会饱和呢&#xff1f;不会的&#xff01;嵌入式在未来的几十年内人才都不会饱和。最近很多小伙伴…

Retrofit+OkHttp打印Request 请求地址参数

在移动端开发时&#xff0c;我们常常需要像web端一样可以方便地查看我们向服务器发送请求的报文详细日志&#xff08;如请求地址&#xff0c;请求参数&#xff0c;请求类型&#xff0c;服务器响应的耗时时间&#xff0c;请求返回的结果等等&#xff09;。 使用Retrofit时&…

优化机器学习:解析数据归一化的重要性与应用

在机器学习中&#xff0c;数据归一化是一种数据预处理的技术&#xff0c;旨在将数据转换为相似的范围或标准化的分布。这样做的主要目的是消除不同特征之间的量纲差异或数值范围差异&#xff0c;以确保模型在训练时更稳定、更有效地学习特征之间的关系。 通常&#xff0c;机器…

js闭包的必要条件及创建和消失(生命周期)

>创建闭包的必要条件&#xff1a; 1.函数嵌套 2.内部函数引用外部函数的变量 3.将内部函数作为返回值返回 >闭包是什么&#xff1f; 就是可以访问外部函数&#xff08;作用域&#xff09;中变量的内部函数 > 闭包是什么时候产生的&#xff1f; - 当调用外部函数…

PPP/INS紧组合代码学习

前言&#xff1a; 本文是基于IGNAV的PPP/INS紧组合学习&#xff0c;在此之前需要具备GNSS/INS松组合知识&#xff0c;武汉大学的i2nav实验室的KF-GINS项目可以作为学习模板。可以参考这篇优秀博文&#xff0c;链接&#xff1a;KF-GINS源码阅读_李郑骁学导航的博客-CSDN博客 IG…