首页>参考读物>计算机科学与技术>软件与程序设计

Spark快速数据处理
作者 : (美)Holden Karau 著
译者 : 余璜 张磊 译
丛书名 : 大数据技术丛书
出版日期 : 2014-04-21
ISBN : 978-7-111-46311-5
定价 : 29.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 130
开本 : 32
原书名 : Fast Data Processing with Spark
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书将带领你踏上用Spark编写分布式Map/Reduce程序之旅,从搭建集群、交互式使用API到在集群上部署Spark作业,一步步引导你写出高效的分布式应用程序。本书涵盖广泛,包括在各种环境下搭建Spark集群(Standalone、EC2等)、使用交互式Shell编写分布式代码,并且书中还穿插讲述了如何使用Java、Scala和Python编写并部署分布式作业,如何使用交互式Shell快速编写分布式原型程序,以及如何使用Spark API。此外,本书还详细介绍了如何操作RDD,怎样结合Spark和Hive,使用Shark编写类SQL查询。

本书主要内容:
如何用Spark Shell快速开发原型分布式程序
与Spark分布式数据(RDD)进行交互的多种方法
如何从各种数据源加载数据
如何使用类SQL语句查询Spark
如何集成Spark程序和Shark查询
如何高效测试分布式程序
Spark安装调优方法
如何在你的集群上安装及构建Spark系统
如何高效处理大数据集

作者简介
Holden Karau 资深软件开发工程师,现就职于Databricks公司,之前曾就职于谷歌、亚马逊、微软和Foursquare等著名公司。他对开源情有独钟,参与了许多开源项目,如Linux内核无线驱动、Android程序监控、搜索引擎等,对存储系统、推荐系统、搜索分类等都有深入研究。

译者简介
余璜 阿里巴巴核心系统研发工程师,OceanBase核心开发人员,对分布式系统理论和工程实践有深刻理解,专注于分布式系统设计、大规模数据处理,乐于分享,在CSDN上分享了大量技术文章。

张磊 Spark爱好者,曾参与分布式OLAP数据库系统核心开发,热衷于大数据处理、分布式计算。


内容简介
Spark是一个开源的通用并行分布式计算框架,由加州大学伯克利分校的AMP实验室开发,支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。Spark内存计算框架适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性,现已逐渐获得很多企业的支持,如阿里巴巴、百度、网易、英特尔等公司。

本书系统讲解Spark的使用方法,包括如何在多种机器上安装Spark,如何配置一个Spark集群,如何在交互模式下运行第一个Spark作业,如何在Spark集群上构建一个生产级的脱机/独立作业,如何与Spark集群建立连接和使用SparkContext,如何创建和保存RDD(弹性分布式数据集),如何用Spark分布式处理数据,如何设置Shark,将Hive查询集成到你的Spark作业中来,如何测试Spark作业,以及如何提升Spark任务的性能。

图书前言

程序员经常需要解决一些单机无法完成的任务。网络应用开发领域有很多方便开发的框架,但很少有框架能让编写分布式程序变得简单。本书要讨论的Spark能让你更容易地编写分布式应用,并且能够根据自己的喜好使用Scala、Java或者Python作为开发语言。
本书内容
  第1章介绍如何安装配置Spark集群,该章介绍如何在多种机器上安装Spark,以及如何配置一个Spark集群,包括从在本地机器上部署开发调试环境,到在EC2集群上部署用Chef管理的大规模集群。
  第2章介绍如何使用Spark shell,在交互模式下运行你的第一个Spark作业(job)。Spark shell是一个有用的调试和快速开发工具,特别适合初学者。
  第3章介绍如何构建和运行Spark应用,该章介绍了如何在Spark集群上构建一个生产级的脱机/独立作业。用Spark shell快速开发出应用原型后,剩下的大部分工作就是在Spark上构建独立作业了。
  第4章介绍如何创建sparkContext,该章介绍如何与Spark集群建立连接。SparkContext是你的程序连接Spark集群的入口点。
  第5章介绍如何加载和保存数据,介绍如何创建和保存RDD(弹性分布式数据集)。Spark支持从Hadoop加载数据。
  第6章介绍如何操作RDD,介绍如何用Spark进行分布式数据处理,这一章会非常有趣。
  第7章介绍如何Shark-Hive与Spark的综合运用,介绍如何设置Shark(一种基于Spark的HiveQL兼容系统),将Hive查询集成到你的Spark作业中来。
  第8章介绍如何测试,介绍如何测试你的Spark作业。分布式任务调试困难,测试就显得更尤为重要。
第9章介绍技巧和窍门,介绍如何提升Spark任务的性能。
预备知识
  熟悉Linux/UNIX以及C++、Java或Python语言对理解本书内容大有裨益。如果有一台以上机器或EC2来做实验,则有利于更深入地了解Spark的分布式特性,不过这并非必要,因为Spark也有非常出色的单机模式。
目标读者
  任何希望学习用Spark编写高效分布式程序的开发者都适合阅读本书。
凡例
  本书使用多种风格的文本来表示不同信息,下面举例说明这些风格及其含义。
  代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、示例URL、用户输入、Twitter内容如下所示:“打包文件中包含一个二进制文件目录,该目录需要添加到搜索路径中,SCALA_HOME必须指向包解压位置”。
  命令行输入或输出风格如下:
  ./run spark.examples.GroupByTest local[4]
  新词汇或重要词汇加粗。屏幕、菜单、对话框等上面的文字风格如下:
  “在Network & Security菜单下选择Key Pairs”。
  包括警告或重要提示内容。
   技巧和窍门等内容。
读者反馈
  欢迎读者反馈。请让我们知道你对本书的看法,喜欢哪些部分,不喜欢哪些部分。读者反馈能够帮助我们开发出更优质的内容,以更好的内容回馈读者。
  一般反馈,请发送邮件至feedback@packtpub.com,请在邮件标题中注明书名。
  如果有你擅长并感兴趣的内容,希望写书或参与写书,请参考作者指引:www.packtpub.com/authors。
客户支持
  我们准备了大量内容回馈Packt出版物的读者,让你觉得物有所值。
源码下载
  本书所有源码可以在github中下载:
  https://github.com/holdenk/fastdataprocessingwithsparksharkexamples
  https://github.com/holdenk/fastdataprocessingwithsparkexamples
  https://github.com/holdenk/chef-cookbook-spark
免责声明
  本书所有观点均出自原书作者,并不代表本出版社观点。本书作者已尽力保证示例源码的使用安全,但是,读者将本书代码用于处理重要数据之前请自行验证。本书作者对内容的完整性、正确性或及时性不作任何保证。作者对由本书内容直接或间接引起的损失、行为、索赔、诉讼等不负任何责任。
勘误
  尽管本书经过了严密的审校,但还是难免有纰漏存在。如果你发现我们的书籍中有任何错误,包括文字或代码,请向我们反馈,非常感谢。你的帮助能让其他读者免受疑惑,也有助于我们在后续发行版中有所改进。如果发现任何错误,请访问http://www.packtpub.com/submit-errata,选择书名,点击errata submission form链接,输入错误的详细信息。一旦你提交的勘误被确认,该勘误将会上传到网站,或加入到现有勘误栏下的勘误表中。在http://www.packtpub.com/support中选中书名后可以查看已有勘误内容。
严禁盗版
  互联网版权内容的盗版问题是由来已久的问题。Packt出版社严肃对待版权和授权保护,如果读者在互联网发现针对本出版社的任何形式的非法盗版物,请立即与我们联系,提供网址或网站名称,我们将追究到底。
  请通过copyright@packtpub.com与我们联系,并提供涉嫌盗版内容的链接地址。
  感谢你保全了作者利益,保全了我们提供优质内容的能力。
提问
  对于本书任何方面的疑问都可以发送邮件至questions@packtpub.com,我们将竭力回复。

上架指导

计算机科学/大数据分析与处理

封底文字

Spark 是一个开源的、类Hadoop的高效分布式计算系统,可用来构建大型的、低延迟的数据分析应用程序。Spark解决的问题和Hadoop MapReduce相似,但它基于内存计算并且拥有非常简洁的函数式API,支持更多的操作而不仅是Map/Reduce,对于迭代运算效率更高。Spark可以集成Hadoop且提供内置的交互式查询分析工具(Shark)、大规模图处理分析工具(Bagel)和实时分析工具(Spark Streaming),能很好地实现交互式快速处理和查询大数据集。

本书将带领你踏上用Spark编写分布式Map/Reduce程序之旅,从搭建集群、交互式使用API到在集群上部署Spark作业,一步步引导你写出高效的分布式应用程序。本书涵盖广泛,包括在各种环境下搭建Spark集群(Standalone,EC2等)、使用交互式Shell编写分布式代码,并且书中还穿插讲述了如何使用Java、Scala和Python编写并部署分布式作业,如何使用交互式Shell快速编写分布式原型程序,以及如何使用Spark API。此外,本书还详细介绍了如何操作RDD,怎样结合Spark和Hive,使用Shark编写类SQL查询。

本书主要内容:

 如何用Spark Shell快速开发原型分布式程序
 与Spark分布式数据(RDD)进行交互的多种方法
 如何从各种数据源加载数据
 如何使用类SQL语句查询Spark
 如何集成Spark程序和Shark查询
 如何高效测试分布式程序
 Spark安装调优
 如何在你的集群上安装及构建Spark系统
 高效处理大数据集

作者简介

(美)Holden Karau 著:暂无简介

译者简介

余璜 张磊 译:暂无简介

译者序

Spark起源于2009年,是美国加州大学伯克利分校AMP实验室的一个研究性项目,于2010年开源。随着Spark社区的不断成熟,它已被广泛应用于阿里巴巴、百度、网易、英特尔等各大公司的生产环境中。
  Spark是用Scala语言写成的一套分布式内存计算系统,它的核心抽象模型是RDD(Resilient Distributed Dataset,弹性分布式数据集),围绕RDD构建了一系列分布式API,可以直接对数据集进行分布式处理。相对于MapReduce上的批量计算、迭代型计算,以及基于Hive的SQL查询,Spark可以带来一到两个数量级的效率提升。在Spark之上还有若干工具,它们一起构成了一个软件栈—BDAS(Berkeley Data Analytics Stack,伯克利数据分析栈),包括支持用SQL查询Spark的工具Shark、支持流式计算的Spark Streaming、专门针对机器学习的MLlib,以及专门针对图数据处理的GraphX。
  Spark对于大多数人来说还是一个新生事物,中文资料十分匮乏,社区内开发者们主要的学习方式还限于阅读有限的官方文档、源码、AMPLab发表的论文,以及社区讨论。这也是译者翻译本书的初衷,希望借助这本小书让更多的国内读者有机会了解Spark,使用Spark,为Spark社区贡献力量。
  Spark的发展日新月异,本书英文版撰写时,Spark版本为0.7,时隔半年,Spark 0.9.0已经发布。原书中的部分内容或链接已经失效,中文版都尽力进行了更新,但难免有所疏漏,欢迎指正。
  本书第1章~第5章由张磊翻译,第6章~第9章由余璜翻译。在本书的翻译过程中还得到了连城、夏帆、杨雪、杨松鹤等人的帮助,在此一并致谢。

余璜
2014.4.1 北京

图书目录

译者序
作者简介
前言
第1章 安装Spark以及构建Spark集群 / 1
1.1 单机运行Spark / 4
1.2 在EC2上运行Spark / 5
1.3 在ElasticMapReduce上部署Spark / 11
1.4 用Chef(opscode)部署Spark / 12
1.5 在Mesos上部署Spark / 14
1.6 在Yarn上部署Spark / 15
1.7 通过SSH部署集群 / 16
1.8 链接和参考 / 21
1.9 小结 / 21
第2章 Spark shell的使用 / 23
2.1 加载一个简单的text文件 / 24
2.2 用Spark shell运行逻辑回归 / 26
2.3 交互式地从S3加载数据 / 28
2.4 小结 / 30
第3章 构建并运行Spark应用 / 31
3.1 用sbt构建Spark作业 / 32
3.2 用Maven构建Spark作业 / 36
3.3 用其他工具构建Spark作业 / 39
3.4 小结 / 39
第4章 创建SparkContext / 41
4.1 Scala / 43
4.2 Java / 43
4.3 Java和Scala共享的API / 44
4.4 Python / 45
4.5 链接和参考 / 45
4.6 小结 / 46
第5章 加载与保存数据 / 47
5.1 RDD / 48
5.2 加载数据到RDD中 / 49
5.3 保存数据 / 54
5.4 连接和参考 / 55
5.5 小结 / 55
第6章 操作RDD / 57
6.1 用Scala和Java操作RDD / 58
6.2 用Python操作RDD / 79
6.3 链接和参考 / 83
6.4 小结 / 84
第7章 Shark-Hive和Spark的综合运用 / 85
7.1 为什么用Hive/Shark / 86
7.2 安装Shark / 86
7.3 运行Shark / 88
7.4 加载数据 / 88
7.5 在Spark程序中运行HiveQL查询 / 89
7.6 链接和参考 / 92
7.7 小结 / 93
第8章 测试 / 95
8.1 用Java和Scala测试 / 96
8.2 用Python测试 / 103
8.3 链接和参考 / 104
8.4 小结 / 105
第9章 技巧和窍门 / 107
9.1 日志位置 / 108
9.2 并发限制 / 108
9.3 内存使用与垃圾回收 / 109
9.4 序列化 / 110
9.5 IDE集成环境 / 111
9.6 Spark与其他语言 / 112
9.7 安全提示 / 113
9.8 邮件列表 / 113
9.9 链接和参考 / 113
9.10 小结 / 114

教学资源推荐
作者: (美)H.M.Deitel, P.J.Deitel
作者: (美) Bruce Eckel
作者: [美]詹姆斯·高斯林(James Gosling), 比尔·乔伊(Bill Joy), 盖·斯蒂尔(Guy Steele),吉拉德·布拉查(Gilad Bracha), 亚历克斯·巴克利(Alex Buckley) 著
作者: 辛运帏 高宁 徐文拴 等编著
参考读物推荐
作者: [美] 托马兹·卓巴斯(Tomasz Drabas) 丹尼·李(Denny Lee) 著
作者: 李亚 著
作者: 主编:夏德旺 谢 立副主编:樊 乐  赵小刚