Spark 编程指南
Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
Hadoop是对大数据集进行分布式计算的标准工具,这也是为什么当你穿过机场时能看到”大数据(Big Data)”广告的原因。它已经成为大数据的操作系统,提供了包括工具和技巧在内的丰富生态系统,允许使用相对便宜的商业硬件集群进行超级计算机级别的计算。2003和2004年,两个来自Google的观点使Hadoop成为可能:一个分布式存储框架(Google文件系统),在Hadoop中被实现为HDFS;一个分布式计算框架(MapReduce)。
这两个观点成为过去十年规模分析(scaling analytics)、大规模机器学习(machine learning),以及其他大数据应用出现的主要推动力!但是,从技术角度上讲,十年是一段非常长的时间,而且Hadoop还存在很多已知限制,尤其是MapReduce。对MapReduce编程明显是困难的。对大多数分析,你都必须用很多步骤将Map和Reduce任务串接起来。这造成类SQL的计算或机器学习需要专门的系统来进行。更糟的是,MapReduce要求每个步骤间的数据要序列化到磁盘,这意味着MapReduce作业的I/O成本很高,导致交互分析和迭代算法(iterative algorithms)开销很大;而事实是,几乎所有的最优化和机器学习都是迭代的。
为了解决这些问题,Hadoop一直在向一种更为通用的资源管理框架转变,即YARN(Yet Another Resource Negotiator, 又一个资源协调者)。YARN实现了下一代的MapReduce,但同时也允许应用利用分布式资源而不必采用MapReduce进行计算。通过将集群管理一般化,研究转到分布式计算的一般化上,来扩展了MapReduce的初衷。
Spark是第一个脱胎于该转变的快速、通用分布式计算范式,并且很快流行起来。Spark使用函数式编程范式扩展了MapReduce模型以支持更多计算类型,可以涵盖广泛的工作流,这些工作流之前被实现为Hadoop之上的特殊系统。Spark使用内存缓存来提升性能,因此进行交互式分析也足够快速(就如同使用Python解释器,与集群进行交互一样)。缓存同时提升了迭代算法的性能,这使得Spark非常适合数据理论任务,特别是机器学习。
本文中,我们将首先讨论如何在本地机器上或者EC2的集群上设置Spark进行简单分析。然后,我们在入门级水平探索Spark,了解Spark是什么以及它如何工作(希望可以激发更多探索)。最后两节我们开始通过命令行与Spark进行交互,然后演示如何用Python写Spark应用,并作为Spark作业提交到集群上。
拓展资料
Spark官网:http://spark.apache.org/
Spark下载链接:http://spark.apache.org/downloads.html
Spark SQL教程
Spark SQL是应用于Spark的一个组件,至于它的具体用途,会在本教程当中为诸位进行讲解。
Apache Spark是一种快速计算的快速集群计算。 它建立在Hadoop MapReduce之上,它扩展了MapReduce模型,以有效地使用更多类型的计算,包括交互式查询和流处理。 这是一个简短的教程,解释Spark SQL编程的基础。
适用人群
本教程是为期望使用Spark Framework学习大数据分析基础知识并成为Spark开发人员的专业人士准备的。 此外,它对于Google Analytics专业人员和ETL开发人员也很有用。
学习前提
在开始执行本教程之前,我们假设您先前已经学习了Scala编程,数据库概念和任意Linux操作系统风格。
相关手册
Scala教程:http://www.w3cschool.cn/Scala/
SQL教程:http://www.w3cschool.cn/sql/
Linux教程:http://www.w3cschool.cn/linux/
JAVA教程:http://www.w3cschool.cn/java/
拓展阅读
Spark SQL官方文档:http://spark.apache.org/docs/latest/sql-programming-guide.html
Spark SQL下载地址:http://spark.apache.org/downloads.html
Spark SQL实例介绍:http://spark.apache.org/examples.html
scala教程
Scala 教程
Scala 是一门多范式的编程语言,一种类似 Java 的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。
我们认为最有意义的学习方式是,不要把 Scala 看做是改进的 Java,而是把它作为一门新的语言。所以这里不会介绍 Java 的使用经验,而将集中讲解解释器和“对象-函数式”的风格,以及 Scala 编程风格。特别强调了可维护性,并发,常用工具和利用类型系统的优势。
适用人群
本教程是为有经验的工程师准备,所以建议读者学习前,了解下 Java 语言的基础或 Scala 入门教程。
学习前提
Scala 是一种相对较新的语言,但借鉴了许多熟悉的概念,所以在学习前,我们假设您已经对面向对象编程、并发、可维护等基本编程思想有了一定的了解。
Scala 相关教程
入门教程
这一两年Spark技术很火,自己也凑热闹,反复的试验、研究,有痛苦万分也有欣喜若狂,抽空把这些整理成文章共享给大家。这个系列基本上围绕了Spark生态圈进行介绍,从Spark的简介、编译、部署,再到编程模型、运行架构,最后介绍其组件SparkSQL、Spark Streaming、Spark MLib和Spark GraphX等。文章内容的整理一般是先介绍原理,随后是实战例子,由于面向的是入门读者,在实战中多截图,还请谅解。为了大家实验方便,在这里把实验相关的测试数据和安装包放在百度盘提供 链接: https://pan.baidu.com/s/1mm9X95PstczvseZw0xj8Jw 密码: t5kw
本系列博客在博客园和CSDN首发,地址为:
博客园http://www.cnblogs.com/shishanyuan
CSDNhttp://blog.csdn.net/yirenboy
以下为该系列文章列表:
2.Spark编译与部署(中)--Hadoop编译安装 下载
3.Spark编程模型(上)--编程模型及SparkShell实战 下载
7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍 下载
7.Spark Streaming(下)--实时流计算Spark Streaming实战 下载
8.Spark MLlib(上)--机器学习及SparkMLlib简介下载
8.Spark MLlib(下)--机器学习库SparkMLlib实战 下载
作者:石山园出处:http://www.cnblogs.com/shishanyuan/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。
高校大数据课程公共服务平台
全国高校大数据课程公共服务平台,旨在为全国高校教师和学生提供大数据教学资源一站式“免费”在线服务,包括大数据专业建设方案、课程教材、讲义PPT、课程习题、实验指南、学习指南、备课指南、授课视频、技术资料、教师培训交流、大数据教学研讨会等。平台由厦门大学数据库实验室林子雨老师团队负责建设,自平台启动建设以来,定位明确,进展顺利,目前平台每年访问量超过100万次,成为全国高校大数据教学知名品牌,在全国高校形成了广泛的影响力,团队多次应邀到全国各类重要学术、教学研讨会做特邀大会报告介绍平台建设经验,同时获批2016年福建省教改项目、教育部2016年度第二批产学合作育人项目,并获得2017年福建省精品在线开放课程、2018年厦门大学高等教育教学成果特等奖和2018年福建省高等教育教学成果二等奖。
全国高校大数据课程公共服务平台,目前已形成完备的高校大数据课程公共服务体系,为全国高校教师教学和学生学习提供全方位、一站式免费服务,平台已建成“11个1工程”,即1套教材、1个教师服务站、1个学生服务站、1个公益项目、1堂巡讲公开课、1个示范班级、1门在线课程、1个交流群、1个保障团队、1个培训交流基地、1个大数据教学研讨会。
网友评论