Spark在AWS集群上的优化

业务场景:从S3中读取大量小的Avro文件,进行简单处理,转换成parquet文件。 问题点:从S3读取文件,实际上是一个文件一个请求发送到S3。并行度低。(固然S3也有并行设置,可是Spark集群每次处理的文件数量是CPU数)。 优化:创建Spark集群时,买较多的CPU数,和较少的内存数。缓存

对于Spark要明确两个资源的概念,CPU和内存。CPU提高task并行度。内存提高运算效率,缓存空间。 采用Spark框架,创建Spark集群时,尽可能判断业务的核心处理是属于计算密集型,仍是IO密集型。 AWS有不一样的机型和服务,适用于不一样的业务处理。在计算密集型的处理中,购买内存占比大的机型。在IO密集型的处理中,购买CPU占比较大的机型。 将AWS实例类型从R换为C后,处理速度提高了40%,而且集群花费减小25%。 AWS也提供spot实例服务。此服务即向AWS申请空闲资源,花费更少,可是不必定能申请到。适合处理时间有弹性的任务。处理思路能够为主备集群。spot服务为主集群,再配置另外一个备用集群。判断spot服务是否启动,若是没有申请到资源,那么建立备用集群,执行任务。框架

相关文章
相关标签/搜索