资 源 简 介
Spark开发指南.pdf本书参考Spark官方文档和源码,通过本书你将精通Spark的安装、配置、开发、监控和调优。Apache SparkSpark是伯克利 APMLab实验室精心打造的,力图在算法( Algorithms)、机器( Machines)、人( People)之间通过大规模集成,来展现大数据应用旳一个平台,其核心引擎就是 Spark,其计算基础是弹性分布式数据集,也就是RDD。通过Spark, MPLab运用大数据、云计算、通信等各种源,以及各种灵活的技术方案,对海量不透明的数据进行甄別并转化为有用的信息,以供人们更好的理解世界。 Spark已经涉及到机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域。Sparp ecological environment陡着 spark的日趋完善, Spark以其优异的性能正逐渐成为下一个业界和学术界的开源大数据处理平台。随着 Spark1.1.0的发布和 Spark生态圈的不断扩大,可以预见在今后的一段吋间内, Spark将越来越火热。spak生态圈以Spa为核心引擎,以HDFS、S3、 Tachyon为持久层读写原生数据,以 Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成spak应用程序的计算;而这些spak应用程序可以来源于不同的组件,如 Spark的批处理应用、 Spark Streaming的实时处理应用、 Spark sρL的即席查询、 BlinkDB的权衝查询、MLib或 MLbase的机器学习、 GraphX的图处理等等。更多的新信息请参看伯克利 APMLab实验室的项目进展htps:/ mplab. cS. berkeley. edu/projects或者 Spark峰会信息htp:/ spark-summit org。Spark Spark MLlib GraphXSQL Streaming(machine(graph)learningApache SparkSparkSpark是一个快速的通用大规模数据丛理系统,和 Hadoop MapReduce相比更好的容锆性和内存计算高速,在内存中运算100倍速度于 MapReduce易用,相同的应用程序代码量要比 MapReduce少25倍提供了丰富的AP支持互动和迭代程序Spark大数据平台之所以能日渐红火,得益于 Spark内核架构的优秀·提供了支持DAG图的分布式并行计算框架,减少多次计算之间中间结果O开销·提供 Cache机制来支持多次迭代计算或者数据共享,减少开销*·RDD之间维护了血统关系,一旦 RDD fail掉了,能通过父RDD自动重建,保证了容错性·, RDD Partition可以就近读取分布式文件系统中的数据块到各个节点内存中进行计算使用多线程池模型来减少task启动开稍shuffle过程中避免不必要的sor操作采用容错的、高可伸缩性的aka作为通讯框架SparkStreamingSparkstreaming是一个对实时数据流进行高通量、容锴处理的流式处理系统,可以对多种数据源(如Kdka、Fume、Twitter、zero和TCP套接字)进行类似map、 reduce、join、 window等复杂操作,并捋结果保存到外部文件系统、数据库或应用到实时仪表盘Sparkstreaming流式必理系统特点有捋流式计算分解成一系列短小的批处理作业将失败或者执行校慢的任务在其它节点上并行执行较强的容错能力(基于RDD继承关系 Lineage)使用和RDD一样的语义Spark SQLSpark SQL是一个即席查询系统,可以通过SQL表达式、 HiveQL或者 Scala dsl在 Spark上执行查询。Spark SQL的特点·引人了新的RDD类型 SchemaRDD,可以象传统数据库定义表一样来定义 SchemaRDD, SchemaRDD由定义了列数据类型的行对象构成。· SchemaRDD可以从RDD转换过来,也可以从 Parquet文件读入,也可以使用 Hive QL从Hve中获取·在应用程序中可以混合使用不同来源的数据,如可以将来自 HiveQL的数据和来自sQL的数据进行jn操作。·内嵌 catalys优化器对用户查询语句进行自动优化MLlibMLib是Spak实现一些常见的机器学习算法和实用程序,包括分类,回归,聚类,协同过滤,降维,以及底层GraphXGraphX是基于 Spark的图处理和图并行计算AP。 GraphX定义了一个新的概念:弹性分布式属性图,一个每个顶点和边都带有属性的定向多重图;并引人了三种核心RDD: Vertices、 Edges、 Triplets;还开放了一组基本操作(如 subgraph,joinvertices, and mapReduce Triplets),并且在不断的扩展图形算法和图形构建工具来筒化图分析工作生态圈的应用Spark生态圈以 Spark为核心、以RDD为基础,打造了一个基于内存DAG计算的大数据平台,为人们提供了一栈式的数据处理方奚。人们可以根据不同的汤景使月主要应用场景用户曲像的建立用户异常行为的发现社交网络关系洞察用户定向商品、活动推荐spak运维相关安装配置、监控等,请求参考《 Spark运维实战》graphiteum install -y bitmap bitmap-fonts-compat Django django-tagging fontconfig cairo python-devel python-memcachedpython-twisted pycairo mod python python-Idap python-simplejson memcached python-zope-interface mod wsgipython-sqlite2Spark BaseSpark开发环境Spark本身是由 scala语言开发的,提供了三种语雷接口: Scala、Java、 Python。根据自己的喜好可以使用相应语言的开发工具。本书使用 scala语言做为开发Spak应用的语,采用 Eclipse为主要的开发工具主要介绍了两个流行的开发工貝: Eclipse、 Intell IDEA。JDK安装配置下载官方网址:htp/www.oracle.com/technetwork/javaljavase/downloads/jdk7-downloads-1880260hml选择好操作系统版本,32位操作采统选择带j586的安装文件;64位操作系统选择菅×64的安装文件。Linux操作系统推荐下载 tar. gz格式的安装文件, Window当然也只有exe格式的文件。Linux下安装解压tar -zxvf jdk-7ug-linux-1586. tar. gz-C/opt/In-/opt/jdk170_09 /opt/jdk设置环境变量用ⅵ编辑配置文件:/etc/ profileexport JAVA HOME=/ pt/jdkexport CLASSPATH=$JAVA HOME/lib/dt jar: SJAVA HOME/lib/tools. jarexport PATH= $JAVA HOME/bin: s PATH保存退出按Esc然后输入Wq使配置生效source /etc/profileWindows下安装选择好操作系统版本是32还是64,解压双击进行安装一路下一步,便可安装成功。设置环境变量测试是否成功命合行输人Java -versIon如果出现下面提示说明成功