Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:
首先,Spark非常好用。由于高级API剥离了对集群本身的关注,你可以专注于你所要做的计算本 身,只需在自己的笔记本电脑上就可以开发Spark应用。
其次,Spark很快,支持交互式使用和复杂算法。
最后,Spark是一个通用引擎,可用它来完成各种各样的运算,包括SQL查询、文本处理、机器学习等,而在Spark出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。 这三大优点也使得Spark可以作为学习大数据的一个很好的起点。
Spark运行特点:
1.每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行Task。这种Application隔离机制是有优势的,无论是从调度角度看(每个Driver调度他自己的任务),还是从运行角度看(来自不同Application的Task运行在不同JVM中),当然这样意味着Spark Application不能跨应用程序共享数据,除非将数据写入外部存储系统
2.Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了
3.提交SparkContext的Client应该靠近Worker节点(运行Executor的节点),最好是在同一个Rack里,因为Spark Application运行过程中SparkContext和Executor之间有大量的信息交换
4.Task采用了数据本地性和推测执行的优化机制。
最后要感谢这个优秀的平台,可以让我们相互交流,如果想进一步学习交流,可以加群460570824,希望大家可以一起学习进步!
网友评论