Zeus: Uber的分布式Spark Shuffle Service
特性
垂直扩展
独立节点运行;
去中心化存储,节点无状态;
解决网络延迟
降低服务响应等待时间
流数据
性能优化
架构
优化点
横向扩展
shuffle 服务独立,可在不同应用间共享;
shuffle 节点无状态;
shuffle 节点可根据需求横向扩展;
分布式shuffle服务
磁盘文件直接读写
直接写入文件,无应用层的缓存;
零拷贝
顺序读写,无随机磁盘IO;
实现方面优化
Netty:高性能异步服务框架
2个线程组:
group1接收网络连接;
group2读取数据;
彼此不阻塞;
二进制网络协议
- 编码和压缩更有效
客户端压缩
- shuffle client