Hadoop与Spark常用配置参数总结
MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序。本文梳理了最常用的一些MapReduce和Spark配置参数。
{关注大规模数据处理,包括Hadoop,YARN,Spark,Flink,Presto等}
MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序。本文梳理了最常用的一些MapReduce和Spark配置参数。
Spark Streaming是Spark生态系统中的重要组成部分,在实现上复用Spark计算引擎。Spark Streaming的优势是吞吐量大,响应时间也可以接受(秒级),并且兼容Spark系统中的其他工具库如MLlib和GraphX。对于时间不敏感且流量很大的系统,Spark Streaming是更优的选择。
在大数据处理场景中,多表Join是非常常见的一类运算。为了便于求解,通常会将多表join问题转为多个两表连接问题。两表Join的实现算法非常多,一般我们会根据两表的数据特点选取不同的join算法,其中,最常用的两个算法是map-side join和reduce-side join。本文将介绍如何在apache spark中实现这两种算法。
目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,本文将介绍这三种部署方式,并比较其优缺点。
前段时间写了几篇使用Eclipse构建Spark源码阅读和开发环境的文章。经过一段时间的试用,发现Eclipse在Scala支持方面很不完善,体验非常差,因此转而使用Intellij IDEA,本文介绍如何使用Intellij IDEA构建Spark源码阅读和开发环境。
Hadoop 2.0自己实现了类似Actor的异步并发模型,实现方式是epoll+状态机,而Apache Spark则直接采用了开源软件Akka,该软件实现了Actor模型,性能非常高。尽管二者在server端采用了一致的并发模型,但在任务级别(特指Spark任务和MapReduce任务)上却采用了不同的并行机制:Hadoop MapReduce采用了多进程模型,而Spark采用了多线程模型。
对于大数据计算框架而言,Shuffle阶段是决定性能好坏的关键因素之一。本文将介绍目前Spark的shuffle实现,并将之与MapReduce进行简单对比。本文的介绍顺序是:shuffle基本概念,MapReduce Shuffle发展史以及Spark Shuffle发展史。