💬 讨论 (6)
8 条回复 · 3 位参与者
讨论旨在消除 Spark Connect 本地开发循环中的启动时间。核心争议在于是否应隐式启动持久化服务器,最终参与者倾向于“显式同意”方案,即用户手动启动服务器而客户端仅负责发现连接,以规避状态混乱风险。
@Holden Karau: 担心隐式持久化服务器会导致用户困惑(例如重启 Python 进程并未杀掉服务器),建议提供清晰的用户指引。
@Tian Gao: 反对将隐式持久化服务器作为默认行为,认为这会引入非确定性行为和难以调试的状态问题,支持仅在用户显式请求时启用。
@Nicholas Chammas: 提议采用“较弱”方案,即添加 CLI 工具并让 `.remote("local")` 自动发现现有服务器,但不自动创建或管理服务器。
初步达成一致,将实施“较弱”方案:提供 CLI 和文档支持,允许 `.remote("local")` 发现并连接已显式启动的服务器,避免改变现有默认行为。
8 条回复 · 3 位参与者
讨论主要围绕 SPIP "Cloud Credential Refresh and Distribution Without Kerberos" 展开,旨在移除 Spark 获取云存储委托令牌时对 Kerberos 的强制依赖。参与者深入探讨了该方案与 OIDC 凭据传播 SPIP 的功能重叠问题,以及 JDK 22+ 中 Subject 传播变更对 Spark K8s 模式下凭据分发的潜在影响。
@Steve Loughran: 指出 Hadoop 委托令牌接口本身不依赖 Kerberos,问题在于 Spark 仅在启用安全机制时才请求令牌,建议将安全检查设为可选。
@Cheng Pan: 认为两个 SPIP 并存会导致功能冗余和诊断困难,倾向于 OIDC 方案;并指出 JDK 25 的变更会破坏线程间 Subject 传播,影响凭据访问。
@Parth Chandra: 解释本 SPIP 旨在以最小代码变更移除 Kerberos 门槛,声称其 DirectProviderPath 方案不受 JDK 变更影响(遭 Cheng Pan 反驳)。
尚未达成明确共识。Cheng Pan 对方案独立性提出异议并指出了 JDK 25 兼容性漏洞,后续需进一步讨论两个 SPIP 的取舍及 HADOOP-19906 补丁的整合。
1 条回复 · 1 位参与者
Nicholas Chammas 提议创建一个名为 `spark` 的统一命令行工具,旨在解决当前 CLI 脚本分散导致用户发现困难和维护成本高的问题。该工具将作为纯 Python 调度器,提供单一入口点和清晰的命令结构,复用现有脚本逻辑。作者展示了原型示例,并征求社区意见以决定是否推进。
@Nicholas Chammas: 现有分散在 bin/ 和 sbin/ 的 20 多个脚本增加了用户发现功能和贡献者维护的难度。
@Nicholas Chammas: 新的统一 CLI 将基于 Python 标准库,作为调度器整合现有脚本,提供清晰的帮助信息。
@Nicholas Chammas: 仍需解决打包方式、命令命名结构以及是否最终将 Bash 脚本合并入 Python CLI 等细节问题。
目前处于提案征集意见阶段,作者已发布原型演示,等待社区(特别是 Committer)反馈以决定是否创建正式工单。
0 条回复 · 1 位参与者
Igor Berman 提议扩展 Spark 的嵌套字段剪枝功能,旨在解决链式 explode 和仅取位置的 posexplode 场景下 I/O 开销过大的问题。他建议引入新的 Catalyst 优化器规则和 NestedArraysZip 表达式,在扫描阶段进行剪枝,并提供了生产环境的性能测试数据作为支持。
@Igor Berman: 现有 NestedColumnAliasing 机制在处理链式 explode 或仅取位置的 posexplode 时无法有效剪枝,导致读取大量无用数据。
@Igor Berman: 提议新增默认开启的 Catalyst 规则,配合 NestedArraysZip 表达式重建数组,且不影响现有已覆盖的场景。
@Igor Berman: 实测显示该优化能将单任务读取量从 200+ GB 降至 20-30 GB,达到理论 I/O 下限。
作者正在征求社区对变更方案形态的意见,以便后续推进深入代码审查。
0 条回复 · 1 位参与者
Nicholas Chammas 提议将 spark-website 的源文件与渲染后的 HTML 分离。他指出目前的流程要求将渲染输出与源代码更改一同提交,导致模板或布局修改变得繁琐。该提议旨在征求提交者的兴趣和反馈。
@Nicholas Chammas: 当前修改模板或布局体验不佳,因为必须提交渲染后的输出,建议分离源文件与渲染 HTML。
暂无明确结论,目前处于征求提交者意见和兴趣的阶段。
0 条回复 · 1 位参与者
Chandni Singh 提议在 spark-kubernetes-operator 中增加对 Kubernetes Gateway API(HTTPRoute/GRPCRoute)的支持,以便更好地暴露 Driver 端点(如 Spark UI)。该方案设计为可选启用,与现有 Ingress 并行且不改变默认行为。发起人计划若无异议将提交 JIRA 并着手开发补丁。
@Chandni Singh: 建议 Operator 原生支持 Gateway API 路由,以适应从 Ingress 迁移的趋势并利用主流实现的 GA 特性。
@Chandni Singh: 实现方式应为 opt-in(可选),与现有 Ingress 字段并行,确保向后兼容。
@Chandni Singh: 该功能基于标准 API,不绑定特定控制器(如 Istio 或 Envoy)。
若无异议,发起人将提交 Spark JIRA 并开始编写补丁。