IT技术博客大学习 共学习 共进步

标签:Apache Spark

共 2 篇相关文章

IT 累计浏览 2,060

60 TB 数据:Facebook 是如何大规模使用 Apache Spark 的

这篇讲的是Facebook如何将一个关键的大数据流水线,从古老的Hive迁移到现代的Apache Spark上。背景是,他们用于实时实体排名的特征准备流程,原本基于Hive,由数百个小作业组成,耗时长达三天,且极其难以监控和维护。为了追求更快的速度和更好的可管理性,他们选择将整个流水线整合成一个单独的Spark作业,直接处理高达60TB的压缩数据。 迁移过程并非一帆风顺。作者坦言,第一次甚至第十次尝试都未成功,因为要可靠地运行一个处理如此大规模shuffle数据的作业,挑战巨大。团队对Spark的可靠性进行了大量修补,例如提升节点频繁重启时的容错能力,修复了从PipedRDD获取失败到执行器内存溢出等一系列问题。这使得作业得以稳定运行。 在性能优化上,他们的努力同样深入。通过自定义的火焰图等分析工具定位瓶颈后,他们对Spark底层进行了关键修改:修复排序器的内存泄漏带来了30%的速度提升;优化Snappy压缩调用节省了10% CPU;减少不必要的重排文件打开操作最高提升了50%的性能。最终,这个迁移项目不仅让Facebook自身受益,所有改进也被回馈给了开源Apache Spark社区。

IT 累计浏览 2,202

一步一步教你怎样给Apache Spark贡献代码

这篇教程详细拆解了向Apache Spark贡献代码的全过程,从在GitHub上fork仓库开始,一步步指导读者如何本地克隆、关联上游代码、创建功能分支、解决合并冲突,直到最终提交一个规范的Pull Request。作者特别强调了几个新手容易忽略的实践细节:比如必须为每个新功能或修复创建独立的分支,而不是直接在master上提交;在提交PR前要主动rebase以避免冲突;以及提交时必须将对应的JIRA链接(如SPARK-2859)准确放入PR标题和描述中,这是Spark社区的协作规范。教程还给出了一个真实的PR和JIRA示例供参考,让整个流程变得具体可感。对于想迈出开源贡献第一步的开发者,它提供了一个清晰、可操作的技术路线图。