【详述】
在Stream Load时,同一个用户,访问FE节点时,鉴权失败(提示’no valid Basic authorization’),但是BE节点时正常。
想咨询下是请求方式有误、StarRocks配置有误,或者其他原因?
向FE节点(HttpPort: 8030)提交请求及结果
想BE节点(HttpPort: 8040)提交请求及结果
【导入/导出方式】
Stream Load
【StarRocks版本】2.2.1
【详述】
在Stream Load时,同一个用户,访问FE节点时,鉴权失败(提示’no valid Basic authorization’),但是BE节点时正常。
想咨询下是请求方式有误、StarRocks配置有误,或者其他原因?
向FE节点(HttpPort: 8030)提交请求及结果
想BE节点(HttpPort: 8040)提交请求及结果
【导入/导出方式】
Stream Load
【StarRocks版本】2.2.1
您是什么版本呀?
StarRocks version 2.2.1
感谢,那再咨询下,我们是否有针对数据流的官方规范样例么?链接里的例子都是针对文件。
原因:
向FE节点发送的Stream Load请求会被FE节点重定向到某个BE节点执行,重定向过程中请求头里的Authorization
字段会被去除(by design),从而导致认证失败。
解决方式:
Authorization
请求头的请求请问有具体如何配置(设置)的步骤么?我现在3.1RC1版本也遇到过同样问题,发FE,说no valid Basic authorization,发BE,数据成功插入
@U_1686558334218_3654不是配置的问题。而是向FE发送HTTP请求时要手动拦截重定向,然后向上述的URL再次发送请求,请求头和初始配置相同即可。
curl --location-trusted 请确认下写法正确不
您好,我遇见了一个奇怪的问题,请指教,
问题 :在使用streamload导入数据的时候,我使用的模拟csv字符串使用httpClient请求api:http://ip:port/api/db/table/_stream_load
当ip和port(8030)是FE的时候总是出现一次成功一次失败(必现),失败的信息Bad Request.
text is empty (possibly HTTP/0.9);如果我把ip和port使用指定BE的时候port(8040)是可以正常执行的;
环境 :java1.8,starrocks:2.5.14,httpClient4.5.13
关键代码 :
HttpPut put = new HttpPut(loadUrl);
StringEntity entity = new StringEntity(content, StandardCharsets.UTF_8);
put.setHeader(HttpHeaders.EXPECT, "100-continue");
put.setHeader(HttpHeaders.AUTHORIZATION, basicAuthHeader(starrocksUser, starrocksPassword));
put.setHeader("column_separator", ",");
put.setHeader("label", label);
put.setEntity(entity);
确实这个原因,改成BE就正常提交了。解决方式: 拦截重定向后的destination URL 向上述URL发送带有Authorization请求头的请求,这个具体是怎么操作呢