新書推薦:
《
海外中国研究·中国早期的星象学和天文学
》
售價:NT$
709.0
《
诡计策划师 午夜文库
》
售價:NT$
250.0
《
管道的力量(畅销美国30年的财富经典,销量超100万册)
》
售價:NT$
254.0
《
长安曾有少年郎
》
售價:NT$
203.0
《
何以为园:中国江南古典私家园林的经济解释
》
售價:NT$
347.0
《
漫画图解博弈论:段位经商谋略之道 赢家是怎样炼成的
》
售價:NT$
203.0
《
斯坦福高中校长给父母的6堂课
》
售價:NT$
408.0
《
人间来过:百岁医师的人生处方
》
售價:NT$
250.0
|
編輯推薦: |
大数据计算系统是大数据工程师必须掌握和了解的内容之一。本书结合两位作者的科研和教学经验,详细介绍了目前常用的大数据计算系统的架构、原理、编程和优化方法。本书分为基础篇、原理篇和运维篇三个部分,基础篇介绍常用大数据计算系统上的编程方法,为后续理解原理并应用奠定基础;原理篇介绍常用大数据计算系统的架构、运行机制,并结合实际场景介绍不同计算系统的应用和设计方法;运维篇介绍了不同计算系统的调优和维护机制,确保大数据计算系统的高效工作。与同类书相比,本书内容层层深入,既有原理的介绍,又有运维、调优等工程知识,为读者成为大数据工程师奠定坚实基础。
|
內容簡介: |
本书兼顾广度和深度、应用和原理、研发和运维,对于各类大数据计算系统进行了深入的介绍,包括大数据计算系统的基本概念、各种大数据计算系统的配置与程序设计方法、大数据计算系统的运行原理、大数据计算机系统的监控、运维和调优方法等。本书适用于作为数据科学与大数据、计算机等专业本科生和研究生相关课程的教材,还可供大数据领域从业人员参考。
|
目錄:
|
目 录
前言
第一部分 基础
第1章 大数据计算系统概述2
1.1 大数据计算系统的定义2
1.1.1 大数据2
1.1.2 大数据计算4
1.1.3 大数据计算系统4
1.2 常见的大数据计算系统6
1.2.1 批处理计算框架Hadoop6
1.2.2 分布式计算框架Spark6
1.2.3 流计算系统Storm7
1.2.4 分布式图计算框架GraphX7
1.2.5 大数据计算系统的对比7
1.3 大数据计算系统的监控与
运维概述7
1.3.1 概述7
1.3.2 监控与运维的范围8
1.3.3 大数据计算系统的监控与
运维方法8
1.3.4 大数据计算系统的运维目标9
1.4 大数据计算系统的性能优化10
1.4.1 提升大数据计算系统
性能的途径10
1.4.2 提升大数据计算系统
性能的难度11
1.4.3 运维与性能优化的关系12
习题112
第二部分 应用实现
第2章 Hadoop的配置与编程14
2.1 批处理计算框架概述14
2.1.1 计算框架14
2.1.2 批处理15
2.2 Hadoop环境的配置与搭建15
2.2.1 环境配置前的准备15
2.2.2 Hadoop安装的预备知识16
2.2.3 本地/独立模式的配置17
2.2.4 伪分布式模式的配置18
2.2.5 全分布式模式的配置20
2.3 一个简单示例22
2.3.1 环境与数据的准备22
2.3.2 在IDEA下建立基于Maven
的Hadoop项目23
2.3.3 编写WordCount程序26
2.3.4 Hadoop程序的运行过程与
结果查看29
2.4 MapReduce编程30
2.4.1 MapReduce计算模型30
2.4.2 MapReduce程序的运行过程32
2.4.3 去重38
习题241
第3章 HDFS及其应用42
3.1 HDFS概述42
3.2 HDFS Shell43
3.2.1 概述43
3.2.2 帮助的使用方法44
3.2.3 通用命令行操作45
3.3 HDFS目录与数据的浏览47
3.4 HDFS API48
3.4.1 概述48
3.4.2 读文件操作48
3.4.3 写文件操作48
3.4.4 FileUtil文件处理49
3.4.5 HDFS API应用示例51
习题357
第4章 Spark的配置与编程58
4.1 Spark环境的安装与部署59
4.1.1 Spark的安装59
4.1.2 Scala的安装60
4.1.3 Spark的源码编译61
4.1.4 搭建Spark单机版环境64
4.1.5 搭建Spark独立运行环境66
4.1.6 搭建Spark on YARN环境68
4.1.7 Spark的高可用性部署70
4.2 Spark的运行72
4.2.1 Spark程序运行概述72
4.2.2 Spark的本地运行过程73
4.2.3 独立运行模式74
4.2.4 Spark on YARN的运行过程75
4.2.5 独立运行模式与YARN
模式的比较76
4.3 Spark Scala编程76
4.3.1 Scala的语法76
4.3.2 Scala编程入门82
4.3.3 Spark API的使用86
4.3.4 用Scala开发Spark应用
程序的案例88
4.3.5 程序运行过程的分析93
习题495
第5章 Storm的配置与编程96
5.1 流计算概述96
5.2 Storm概述98
5.2.1 什么是Storm98
5.2.2 Storm的特征98
5.3 Storm开发环境的搭建99
5.3.1 Storm环境的配置99
5.3.2 命令行客户端102
5.3.3 IDEA下建立Storm的
Maven项目107
5.4 Storm编程109
5.4.1 可以与Storm集成的系统109
5.4.2 计算模型109
5.4.3 可以使用任何语言110
5.4.4 简单的API110
5.5 Storm编程示例—单词计数110
5.5.1 实现目标110
5.5.2 建立编写程序的包名111
5.5.3 编写spouts文件Word-
Reader112
5.5.4 编写bolts文件Word-
Normalizer114
5.5.5 编写bolts文件WordCounter115
5.5.6 编写主函数文件Topologoy-
Main116
5.5.7 通过主函数文件Topologoy-
Main运行程序117
习题5117
第6章 GraphX及其应用118
6.1 图计算概述118
6.1.1 图118
6.1.2 属性图119
6.1.3 图计算119
6.1.4 支持图计算的GraphX120
6.2 GraphX编程120
6.2.1 GraphX项目的导入120
6.2.2 GraphX中属性图的表达120
6.2.3 图操作符121
6.3 GraphX编程示例126
6.3.1 一个简单的GraphX示例126
6.3.2 GraphX应用编程—
子图发现129
6.3.3 GraphX应用编程—
PageRank130
习题6132
第三部分 原理
第7章 Hadoop的原理134
7.1 Hadoop的体系结构134
7.2 MapReduce的工作机制135
7.2.1 背景135
7.2.2 计算的执行流程137
7.2.3 计算的本地性138
7.3 MapReduce作业的运行机制139
7.3.1 经典的MapReduce139
7.3.2 YARN145
7.4 作业的调
|
內容試閱:
|
前 言
大数据计算需要由系统来完成,完成数据科学与大数据技术相关任务的核心工作就是选择、配置大数据计算系统并进行调优,以及基于大数据计算系统进行程序设计,完成这些工作的前提是深入了解和熟练使用大数据计算系统。本书面向这一需求,为读者介绍大数据计算系统的基本知识和使用方法。
由于大数据及其应用的多样性,出现了大量的大数据计算系统,本书选择常用的大数据计算系统加以介绍,包括用于批处理的Hadoop和Spark、用于流处理的Storm和用于图数据处理的Spark GraphX。针对每一种系统,书中都介绍了其配置、程序设计方法以及工作原理。由于保证大数据计算系统的高性能需要对其进行监控、运维和调优,因此本书还以上述系统为例介绍了相关的监控、运维和调优方法。
考虑到读者的不同需求,本书兼顾广度和深度、应用和原理、研发和运维,对于各类大数据计算系统都进行了详细介绍,具有较强的实用性。本书适合作为本科生和研究生“大数据计算系统”“大数据系统开发”以及相关课程的教材,也可以作为“分布式计算”“计算机系统”等课程的补充教材或课外读物。本书还适合作为大数据技术培训的参考书和大数据领域从业人员的技术参考书。
本书采取模块化编写方式,分为4个部分。部分包括第1章,主要对大数据计算系统进行概述;第二部分包括第2~6章,介绍各种大数据计算系统的配置与编程方法;第三部分包括第7~11章,重点介绍大数据计算系统的原理;第四部分包括第12~14章,讲授大数据计算系统的监控、运维和调优方法。
高校可根据教学目标选择不同的内容进行讲授。偏重原理的高校可以着重讲授部分和第三部分中的概念和原理内容,将第二部分和第四部分作为原理的应用进行介绍;偏重大数据计算系统研发的高校可以着重讲授部分和第二部分,将第三部分和第四部分作为深入学习的参考资料;偏重大数据计算系统运维和调优的高校可以着重讲授部分和第四部分,将第二部分和第三部分作为运维的背景知识进行介绍。
需要注意的是,大数据计算系统的原理、使用和运维、调优是密不可分的。只有深入了解原理,才能基于大数据计算系统进行高效开发,并对系统进行运维和调优。特别是当前的大数据计算系统日益复杂,高效的系统开发和维护尤其需要深入理解原理;而只有进行有效的运维和调优,才能保证大数据计算系统持续高效地运行。
在使用方法上,本书可以作为一本面向大数据计算系统应用开发的教材或参考书,供高校师生和专业技术人员完整地学习。由于各部分相对独立,主题明确,不同需求的读者可以单独学习相关主题。书中对于各类大数据计算系统都提供了比较详细的介绍和应用案例,读者可以根据自己的情况选择学习。
虽然本书面向初学者,但建议读者有一些程序设计、计算机系统、计算机网络和数据库管理系统方面的先修知识。由于大数据计算系统是一种面向数据密集型计算的分布式系统,因此在学习本书第三部分的时候,建议和“分布式系统”相关教材相互参考。
当前不仅数据在增长,以数据为中心的应用也在不断增长。大数据计算系统作为大数据计算的核心,也在不断发展和演化之中,为了保证本书的生命力,作者选取了经典系统进行介绍,同时兼顾原理和应用。但是,限于作者的水平,本书在内容安排、表述等方面难免存在不当之处,敬请读者在阅读本书的过程中,提出宝贵的意见和建议。读者的意见和建议请发至邮箱wangzh@hit.edu.cn。本书相关的信息也会在微信公众号“大数据与数据科学家”(big_data_scientist)发布。
感谢哈尔滨工业大学的李建中教授、高宏教授和海量数据计算研究中心的诸位同事对本书内容的指导与建议,以及在专业上对作者的帮助。
在本书的撰写过程中,哈尔滨工业大学的陈翔、张于舒晴、刘畅、王煜彤、张梦等同学在资料搜集、整理、文本校对、制图等方面提供了帮助和支持,在此表示感谢。
非常感谢我的爱人黎玲利副教授对我的支持,并在大数据计算领域和我不断探讨。感谢我的母亲和岳母帮忙料理家务,照顾我的宝宝“壮壮”,使我有时间完成本书的写作。
后,作者关于大数据计算方面的研究和本书的写作得到了国家自然科学基金项目(编号:U62232005)、产学研协作育人项目(编号:201801130005)和哈尔滨工业大学研究生教育教学改革研究项目的资助,在此表示感谢。
王宏志
2023年5月于哈尔滨
|
|