探寻从HDFS到Spark的高效数据通道
为了保证高效的数据移动,locality是大数据栈以及分布式应用程序所必须保证的性质,这一点在Spark中尤为明显。如果数据集大到不能保证完全放入内存,那就不能贸然使用cache()将数据固化到内存中。如果读取数据不能保证较好的locality性质的话,不论是对即席查询还是迭代计算都将面临输入瓶颈。而作为常用的分布式文件系统,HDFS承担着数据存储、一致性保证等关键问题。HDFS自开发之初就与GoogleGFS一脉相承,因此也继承了其无法较好的处理小文件的问题,但大量小文件输入又是分布式计算中常见场景。本文以小文件输入为案例,看看从HDFS到Spark的数据通道中到底发生了什么,并讨论如何设计
用户评论