Spark快速数据处理.pdf

Spark快速数据处理.pdf
 

书籍描述

内容简介
Spark是一个开源的通用并行分布式计算框架,由加州大学伯克利分校的AMP实验室开发,支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。Spark内存计算框架适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性,现已逐渐获得很多企业的支持,如阿里巴巴、百度、网易、英特尔等公司。本书系统讲解Spark的使用方法,包括如何在多种机器上安装Spark,如何配置一个Spark集群,如何在交互模式下运行第一个Spark作业,如何在Spark集群上构建一个生产级的脱机/独立作业,如何与Spark集群建立连接和使用SparkContext,如何创建和保存RDD(弹性分布式数据集),如何用Spark分布式处理数据,如何设置Shark,将Hive查询集成到你的Spark作业中来,如何测试Spark作业,以及如何提升Spark任务的性能。

编辑推荐
从实用角度系统讲解Spark的数据处理工具及使用方法
手把手教你充分利用Spark提供的各种功能,快速编写高效分布式程序

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

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

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

目录
目 录
译者序
作者简介
前言
第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

序言
前 言
程序员经常需要解决一些单机无法完成的任务。网络应用开发领域有很多方便开发的框架,但很少有框架能让编写分布式程序变得简单。本书要讨论的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,我们将竭力回复。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多