您好,欢迎光临有路网!
Spark大数据处理:技术、应用与性能优化
QQ咨询:
有路璐璐:

Spark大数据处理:技术、应用与性能优化

  • 作者:高彦杰
  • 出版社:机械工业出版社
  • ISBN:9787111483861
  • 出版日期:2014年11月01日
  • 页数:255
  • 定价:¥59.00
  • 猜你也喜欢

    分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    这是一本依据*新技术版本,系统、全面、详细讲解Spark的著作,作者结合自己在微软和IBM的实践经验和对Spark源代码的研究撰写而成。首先从技术层面讲解了Spark的体系结构、工作机制、安装与部署、开发环境搭建、计算模型、Benchmark、BDAS等内容;然后从应用角度讲解了一些简单的、有代表性的案例;*后对Spark的性能优化进行了探讨。
    文章节选
    第1章
    Spark 简 介
    本章主要介绍Spark大数据计算框架、架构、计算模型和数据管理策略及Spark在工业界的应用。围绕Spark的BDAS 项目及其子项目进行了简要介绍。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,本章只进行简要介绍,后续章节再详细阐述。
    1.1 Spark是什么
    Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark 部署在大量廉价硬件之上,形成集群。
    Spark于2009年诞生于加州大学伯克利分校AMPLab。目前,已经成为Apache软件基金会旗下的**开源项目。下面是Spark的发展历程。
    1.Spark的历史与发展
    2009年:Spark诞生于AMPLab。
    2010年:开源。
    2013年6月:Apache孵化器项目。
    2014年2月:Apache**项目。
    2014年2月:大数据公司Cloudera宣称加大Spark框架的投入来取代MapReduce。
    2014年4月:大数据公司MapR投入Spark阵营,Apache Mahout放弃MapReduce,将使用Spark作为计算引擎。
    2014年5月:Pivotal Hadoop集成Spark全栈。
    2014年5月30日:Spark 1.0.0发布。
    2014年6月:Spark 2014 峰会在旧金山召开。
    2014年7月:Hive on Spark项目启动。
    目前AMPLab和Databricks负责整个项目的开发维护,很多公司,如Yahoo!、Intel等参与到Spark的开发中,同时很多开源爱好者积极参与Spark的更新与维护。
    AMPLab开发以Spark为核心的BDAS时提出的目标是:one stack to rule them all,也就是说在一套软件栈内完成各种大数据分析任务。相对于MapReduce上的批量计算、迭代型计算以及基于Hive的SQL查询,Spark可以带来上百倍的性能提升。目前Spark的生态系统日趋完善,Spark SQL的发布、Hive on Spark项目的启动以及大量大数据公司对Spark全栈的支持,让Spark的数据分析范式更加丰富。
    2.Spark之于Hadoop
    更准确地说,Spark是一个计算框架,而Hadoop中包含计算框架MapReduce和分布式文件系统HDFS,Hadoop更广泛地说还包括在其生态系统上的其他系统,如Hbase、
    Hive等。
    Spark是MapReduce的替代方案,而且兼容HDFS、Hive等分布式存储层,可融入Hadoop的生态系统,以弥补缺失MapReduce的不足。
    Spark相比Hadoop MapReduce的优势如下。
    (1)中间结果输出
    基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖于底���文件系统(如HDFS)来存储每一个Stage的输出结果。
    Spark将执行模型抽象为通用的有向无环图执行计划(DAG),这可以将多Stage的任务串联或者并行执行,而无须将Stage中间结果输出到HDFS中。类似的引擎包括Dryad、Tez。
    (2)数据格式和内存布局
    由于MapReduce Schema on Read处理方式会引起较大的处理开销。Spark抽象出分布式内存存储结构弹性分布式数据集RDD,进行数据的存储。RDD能支持粗粒度写操作,但对于读取操作,RDD可以**到每条记录,这使得RDD可以用来作为分布式索引。Spark的特性是能够控制数据在不同节点上的分区,用户可以自定义分区策略,如Hash分区等。Shark和Spark SQL在Spark的基础之上实现了列存储和列存储压缩。
    (3)执行策略
    MapReduce在数据Shuffle之前花费了大量的时间来排序,Spark则可减轻上述问题带来的开销。因为Spark任务在Shuffle中不是所有情景都需要排序,所以支持基于Hash的分布式聚合,调度中采用更为通用的任务执行计划图(DAG),每一轮次的输出结果在内存缓存。
    (4)任务调度的开销
    传统的MapReduce系统,如Hadoop,是为了运行长达数小时的批量作业而设计的,在某些**情况下,提交一个任务的延迟非常高。
    Spark采用了事件驱动的类库AKKA来启动任务,通过线程池复用线程来避免进程或线程启动和切换开销。
    3.Spark能带来什么
    Spark的一站式解决方案有很多的优势,具体如下。
    (1)打造全栈多计算范式的**数据流水线
    Spark支持复杂查询。在简单的“map”及“reduce”操作之外,Spark还支持SQL查询、流式计算、机器学习和图算法。同时,用户可以在同一个工作流中无缝搭配这些计算范式。
    (2)轻量级快速处理
    Spark 1.0核心代码只有4万行。这是由于Scala语言的简洁和丰富的表达力,以及Spark充分利用和集成Hadoop等其他第三方组件,同时着眼于大数据处理,数据处理速度是至关重要的,Spark通过将中间结果缓存在内存减少磁盘I/O来达到性能的提升。
    (3)易于使用,Spark支持多语言
    Spark支持通过Scala、Java及Python编写程序,这允许***在自己熟悉的语言环境下进行工作。它自带了80多个算子,同时允许在Shell中进行交互式计算。用户可以利用Spark像书写单机程序一样书写分布式程序,轻松利用Spark搭建大数据内存计算平台并充分利用内存计算,实现海量数据的实时处理。
    (4)与HDFS等存储层兼容
    Spark可以独立运行,除了可以运行在当下的YARN等集群管理系统之外,它还可以读取已有的任何Hadoop数据。这是个非常大的优势,它可以运行在任何Hadoop数据源上,如Hive、HBase、HDFS等。这个特性让用户可以轻易迁移已有的持久化层数据。
    (5)社区活跃度高
    Spark起源于2009年,当下已有超过50个机构、260个工程师贡献过代码。开源系统的发展不应只看一时之快,更重要的是支持一个活跃的社区和强大的生态系统。
    同时我们也应该看到Spark并不是**的,RDD模型适合的是粗粒度的全局数据并行计算。不适合细粒度的、需要异步更新的计算。对于一些计算需求,如果要针对特定工作负载达到*优性能,还是需要使用一些其他的大数据系统。例如,图计算领域的GraphLab在特定计算负载性能上优于GraphX,流计算中的Storm在实时性要求很高的场合要比Spark Streaming更胜一筹。
    随着Spark发展势头日趋迅猛,它已被广泛应用于Yahoo!、Twitter、阿里巴巴、百度、网易、英特尔等各大公司的生产环境中。
    1.2 Spark生态系统BDAS
    目前,Spark已经发展成为包含众多子项目的大数据计算平台。伯克利将Spark的整个生态系统称为伯克利数据分析栈(BDAS)。其核心框架是Spark,同时BDAS涵盖支持结构化数据SQL查询与分析的查询引擎Spark SQL和Shark,提供机器学习功能的系统MLbase及底层的分布式机器学习库MLlib、并行图计算框架GraphX、流计算框架Spark Streaming、采样近似计算查询引擎BlinkDB、内存分布式文件系统Tachyon、资源管理框架Mesos等子项目。这些子项目在Spark上层提供了更高层、更丰富的计算范式。
    ……
    目录
    前言
    第1章 Spark简介
    1.1 Spark是什么
    1.2 Spark生态系统
    1.3 Spark架构
    1.4 Spark分布式架构与单机多核架构的异同
    1.5 Spark的企业级应用
    1.5.1 Spark在Amazon中的应用
    1.5.2 Spark在Yahoo!的应用
    1.5.3 Spark在西班牙电信的应用
    1.5.4 Spark在淘宝的应用
    1.6 本章小结
    第2章 Spark集群的安装与部署
    2.1 Spark的安装与部署
    2.1.1 在Linux集群上安装与配?
    2.1.2 在Windows上安装与配?
    2.2 Spark集群初试
    2.3 本章小结
    第3章 Spark计算模型
    3.1 Spark程序模型
    3.2 弹性分布式数据集
    3.2.1 RDD简介
    3.2.2 RDD与分布式共享内存的异同
    3.2.3 Spark的数据存储
    3.3 Spark算子分类及功能
    3.3.1 Value型Transformation算子
    3.3.2 Key-Value型Transformation算子
    3.3.3 Actions算子
    3.4 本章小结
    第4章 Spark工作机制详解
    4.1 Spark应用执行机制
    4.1.1 Spark执行机制总览
    4.1.2 Spark应用的概念
    4.1.3 应用提交与执行方式
    4.2 Spark调度与任务分配模块
    4.2.1 Spark应用程序之间的调度
    4.2.2 Spark应用程序内Job的调度
    4.2.3 Stage和TaskSetManager调度方式
    4.2.4 Task调度
    4.3 Spark I/O机制
    4.3.1 序列化
    4.3.2 压缩
    4.3.3 Spark块管理
    4.4 Spark通信模块
    4.4.1 通信框架
    4.4.2 Client、Master和Worker间的通信
    4.5 容错机制
    4.5.1 Lineage机制
    4.5.2 Checkpoint机制
    4.6 Shuffle机制
    4.7 本章小结
    第5章 Spark开发环境配置及流程
    5.1 Spark应用开发环境配置
    5.1.1 使用Intellij开发Spark程序
    5.1.2 使用Eclipse开发Spark程序
    5.1.3 使用SBT构建Spark程序
    5.1.4 使用Spark Shell开发运行Spark程序
    5.2 远程调试Spark程序
    5.3 Spark编译
    5.4 配置Spark源码阅读环境
    5.5 本章小结
    第6章 Spark编程实战
    6.1 Word
    6.2
    6.3 中位数
    6.4 倒排索引
    6.5 Coun
    6.6 倾斜连接
    6.7 股票趋势预测
    6.8 本章小结
    第7章 Benchmark使用详解
    7.1 Benchmark简介
    7.1.1 Intel Hibench与Berkeley BigData
    7.1.2 Hadoop Gr
    7.1.3 Bigbench、BigDataBenchmark与T
    7.1.4 其他Benc
    7.2 Benchmark的组成
    7.2.1 数据集
    7.2.2 工作负载
    7.2.3 度量指标
    7.3 Benchmark的使用
    7.3.1 使用Hi
    7.3.2 使用T
    7.3.3 使用BigData
    7.4 本章小结
    第8章 BDAS简介
    8.1 SQL on
    8.1.1 使用Spark SQL的原因
    8.1.2 Spark SQL架构分析
    8.1.3 Shark简介
    8.1.4 Hive on
    8.1.5 未来展望
    8.2 Spark Stre
    8.2.1 Spark Streaming简介
    8.2.2 Spark Streaming架构
    8.2.3 Spark Streaming原理剖析
    8.2.4 Spark Streaming调优
    8.2.5 Spark Streaming 实例
    8.3 G
    8.3.1 GraphX简介
    8.3.2 GraphX的使用
    8.3.3 GraphX架构
    8.3.4 运行实例
    8.4
    8.4.1 MLlib简介
    8.4.2 MLlib的数据存储
    8.4.3 数据转换为向量(向量空间模型VSM)
    8.4.4 MLlib中的聚类和分类
    8.4.5 算法应用实例
    8.4.6 利用MLlib进行电影**
    8.5 本章小结
    第9章 Spark性能调优
    9.1 配置参数
    9.2 调优技巧
    9.2.1 调度与分区优化
    9.2.2 内存存储优化
    9.2.3 网络传输优化
    9.2.4 序列化与压缩
    9.2.5 其他优化方法
    9.3 本章小结
    编辑推荐语
    根据*新技术版本,系统、全面、详细讲解Spark的各项功能使用、原理机制、技术细节、应用方法、性能优化,以及BDAS生态系统的相关技术  

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外