7-5
今日Vega项目进度继续提速。
HDFS方面: 修复了hdfs_file_reader在多机模式报无环境变量的问题,但出现了新的问题。 新增用于读写hdfs的类HdfsIO,作为备案。
ShuffleManager方面: 我们基于对shuffle部分的深刻分析,优化了shuffle阶段的键值映射模式(优化原理与sort_shuffle类似),解决了原有的hash_shuffle产生过多键值对(实际无需区分map分区的ID)而影响性能的问题。
Spark方面: 解决了使用perf时执行PySpark异常的问题
vega总体项目方面: 发现cargo run --release在1.70.0后版本无法正常编译一个重要包"serde_traitobject" 查询git PR发现解决方案如下
rustup install nightly-2023-04-17
rustup default nightly-2023-04-17
rustup component add rust-src --toolchain nightly-2023-04-17
rustup override set nightly-2023-04-17-x86_64-unknown-linux-gnu
https://github.com/alecmocatta/serde_traitobject/issues/35
使用cargo run --release 可以大大加快程序运行速度 在测试程序编写时传引用而非直接传参数可以节省1s多的函数调用开销 使用条件编译将hdrs_valid设置为feature,避免未安装java/hadoop的用户编译失败
我们继续使用perf工具对于Vega项目进行性能分析
尝试使用grafana展示prometheus和node_exporter的监控数据。 修改docker配置文件使得可以在docker下运行监控与vega。
容错方面仍在持续探索问题所在,对运行时的实时信息做了打印,以方便调试。