作 者:杨正洪 著
定 价:79
出 版 社:清华大学出版社
出版日期:2020年02月01日
页 数:387
装 帧:平装
ISBN:9787302547969
●目 录
第1章 大数据时代1
1.1 什么是大数据1
1.1.1 四大特征2
1.1.2 数据监管(Data Governance)3
1.1.3 数据质量4
1.1.4 大数据分析4
1.1.5 大数据平台架构5
1.2 大数据与云计算的关系6
1.2.1 云计算产品概述6
1.2.2 虚拟服务器7
1.2.3 云存储11
1.3 Hadoop和云平台的应用实例12
1.3.1 云平台层面配置12
1.3.2 大数据平台层面配置14
1.4 数据湖(Data Lake)16
1.5 企业如何走向大数据17
1.5.1 业务价值维度18
1.5.2 数据维度18
1.5.3 现有IT环境和成本维度19
1.5.4 数据治理维度20
第2章 大数据软件框架21
2.1 Hadoop框架21
2.1.1 HDFS(分布式文件系统)22
2.1.2 MapReduce(分布式计算框架)23
2.1.3 YARN(集群资源管理器)28
2.2 Spark(内存计算框架)30
2.2.1 Spark SQL31
2.2.2 Spark Streaming32
2.3 实时流处理框架34
2.4 云端消息队列34
2.5 框架的选择35
2.6 Hadoop发行版36
2.7 Mac上安装Hadoop37
2.7.1 在Mac上安装Hadoop37
2.7.2 安装MySQL和Hive41
2.8 Linux上安装Hadoop44
2.8.1 配置Java环境45
2.8.2 安装ntp和Python47
2.8.3 安装和配置openssl47
2.8.4 配置SSH无密码访问47
2.8.5 安装Ambari和HDP48
2.8.6 启动和停止服务52
2.9 AWS云平台上安装Hadoop54
第3章 大数据集群57
3.1 集群实例分析57
3.2 YARN67
3.2.1 架构组成68
3.2.2 YARN执行流程71
3.3 资源的调度器75
3.3.1 Capacity Scheduler76
3.3.2 Fair Scheduler78
3.3.3 资源调度实例分析81
3.3.4 内存和CPU资源调度84
3.4 深入研究Resource Manager88
3.5 集群配置文件总览91
3.5.1 yarn-site.xml91
3.5.2 mapred-site.xml94
3.6 自动伸缩(Auto Scaling)集群97
3.7 迁移Hadoop集群97
3.8 增加Instance99
第4章 大数据存储:文件系统和云存储100
4.1 HDFS shell命令100
4.2 配置HDFS102
4.2.1 配置文件102
4.2.2 多节点配置103
4.3 HDFS API编程104
4.3.1 读取HDFS文件内容105
4.3.2 写HDFS文件内容108
4.3.3 WebHDFS108
4.4 HDFS API总结110
4.4.1 Configuration类110
4.4.2 FileSystem抽象类111
4.4.3 Path类111
4.4.4 FSDataInputStream类111
4.4.5 FSDataOutputStream类112
4.4.6 IOUtils类112
4.4.7 FileStatus类112
4.4.8 FsShell类112
4.4.9 ChecksumFileSystem抽象类112
4.4.10 其他的HDFS API实例113
4.4.11 综合实例115
4.5 HDFS文件格式118
4.5.1 SequenceFile118
4.5.2 TextFile(文本格式)118
4.5.3 RCFile118
4.5.4 Avro120
4.6 云存储S3120
4.6.1 S3基本概念121
4.6.2 S3管理控制台122
4.6.3 S3 CLI126
4.6.4 S3 SDK127
4.6.5 分区129
4.6.6 与EBS的比较129
4.6.7 与Glacier的比较129
第5章 大数据存储:数据库130
5.1 NoSQL130
5.2 HBase概述131
5.2.1 HBase表结构132
5.2.2 HBase系统架构135
5.2.3 启动并操作HBase数据库136
5.2.4 HBase Shell工具139
5.3 HBase编程142
5.3.1 增删改查API142
5.3.2 过滤器146
5.3.3 计数器149
5.3.4 原子操作149
5.3.5 管理API149
5.4 其他NoSQL数据库151
5.4.1 Cassandra151
5.4.2 Impala151
5.4.3 DynamoDB151
5.4.4 Redshift151
5.5 云数据库152
5.5.1 什么是RDS152
5.5.2 创建云数据库152
5.5.3 查看云数据库信息156
5.5.4 何时使用云端数据库159
第6章 大数据访问:SQL引擎层160
6.1 Phoenix161
6.1.1 安装和配置Phoenix161
6.1.2 在Eclipse上开发Phoenix程序165
6.1.3 Phoenix SQL工具169
6.1.4 Phoenix SQL语法170
6.2 Hive171
6.2.1 Hive架构172
6.2.2 安装Hive173
6.2.3 Hive CLI175
6.2.4 Hive数据类型175
6.2.5 Hive文件格式177
6.2.6 Hive表定义179
6.2.7 Hive加载数据183
6.2.8 Hive查询数据184
6.2.9 Hive UDF186
6.2.10 Hive视图188
6.2.11 HiveServer2189
6.2.12 hive-site.xml需要的配置195
6.2.13 HBase集成200
6.2.14 XML和JSON数据200
6.2.15 使用TEZ201
6.2.16 Hive MetaStore203
6.2.17 综合示例204
6.3 Pig206
6.3.1 Pig语法207
6.3.2 Pig和Hive的使用场景之比较210
6.4 ElasticSearch(全文搜索引擎)211
6.4.1 全文索引的基础知识211
6.4.2 安装和配置ElasticSearch213
6.4.3 ElasticSearch API215
6.5 Presto217
第7章 大数据采集和导入218
7.1 Flume220
7.1.1 Flume架构220
7.1.2 Flume事件221
7.1.3 Flume源221
7.1.4 Flume(Interceptor)222
7.1.5 Flume通道选择器(Channel Selector)223
7.1.6 Flume通道224
7.1.7 Flume接收器225
7.1.8 负载均衡和单点失败226
7.1.9 Flume监控管理227
7.1.10 Flume实例227
7.2 Kafka229
7.2.1 Kafka架构229
7.2.2 Kafka与JMS的异同230
7.2.3 Kafka性能考虑231
7.2.4 消息传送机制231
7.2.5 Kafka和Flume的比较232
7.3 Sqoop232
7.3.1 从数据库导入HDFS233
7.3.2 增量导入235
7.3.3 将数据从Oracle导入Hive235
7.3.4 将数据从Oracle导入HBase235
7.3.5 导入所有表236
7.3.6 从HDFS导出数据236
7.3.7 数据验证237
7.3.8 其他Sqoop功能237
7.4 Storm238
7.4.1 Storm基本概念238
7.4.2 Spout240
7.4.3 Bolt241
7.4.4 拓扑结构243
7.4.5 Storm总结244
7.5 Kinesis245
7.6 其他工具246
7.6.1 Embulk246
7.6.2 Fluentd247
第8章 大数据安全管控250
8.1 数据主权和合规性250
8.2 云端安全251
8.2.1 身份验证和访问权限251
8.2.2 角色253
8.2.3 虚拟网络254
8.2.4 安全组255
8.3 云端监控256
8.3.1 跟踪和审计256
8.3.2 监控257
8.3.3 基于Datadog的监控259
8.4 云端备份和恢复262
8.5 大数据安全262
8.5.1 Kerberos263
8.5.2 Apache Ranger263
8.5.3 应用端安全267
第9章 大数据快速处理平台:Spark268
9.1 Spark框架268
9.1.1 安装和配置Spark269
9.1.2 Scala270
9.2 Spark Shell271
9.3 Spark编程273
9.3.1 编写Spark API程序274
9.3.2 使用sbt编译并打成JAR包274
9.3.3 运行程序275
9.4 RDD276
9.4.1 RDD算子和RDD依赖关系277
9.4.2 RDD转换操作278
9.4.3 RDD行动(Action)操作279
9.4.4 RDD控制操作280
9.4.5 RDD实例280
9.5 Spark SQL282
9.5.1 DataFrame283
9.5.2 RDD转化为DataFrame287
9.5.3 JDBC数据源289
9.5.4 Hive数据源289
9.6 Spark Streaming290
9.6.1 DStream编程模型291
9.6.2 DStream操作293
9.6.3 性能考虑295
9.6.4 容错能力296
第10章 大数据分析297
10.1 数据科学298
10.1.1 探索性数据分析299
10.1.2 描述统计300
10.1.3 数据可视化300
10.2 预测分析303
10.2.1 预测分析实例303
10.2.2 回归(Regression)分析预测法304
10.3 机器学习305
10.3.1 机器学习的定义306
10.3.2 机器学习分类307
10.3.3 机器学习算法308
10.3.4 机器学习框架310
10.4 算法312
10.4.1 分类算法313
10.4.2 预测算法313
10.4.3 聚类算法314
10.4.4 关联分析315
10.4.5 决策树317
10.4.6 异常值分析算法320
10.4.7 协同过滤(推荐引擎)算法320
10.5 大数据分析总体架构321
10.5.1 大数据平台和大数据分析的关系321
10.5.2 大数据平台的核心功能322
10.5.3 DMP323
10.5.4 CDP324
10.6 微服务324
10.6.1 启动和停止Consul326
10.6.2 服务注册327
10.6.3 查询服务329
10.6.4 服务状态检查329
第11章 大数据环境自动化部署: Docker和Kubernetes331
11.1 什么是Docker?332
11.1.1 虚拟机332
11.1.2 Linux容器333
11.1.3 Docker的由来333
11.1.4 Docker的用途333
11.1.5 Docker和虚拟机的区别334
11.2 镜像文件335
11.3 Docker安装335
11.4 Dockerfile文件336
11.4.1 什么是Dockerfile336
11.4.2 使用Dockerfile338
11.4.3 发布镜像文件338
11.4.4 仓库(Repository)339
11.5 Service(服务)340
11.5.1 yml文件340
11.5.2 部署服务341
11.5.3 伸缩(Scale)应用341
11.6 Swarm341
11.6.1 什么是Swarm集群341
11.6.2 设置Swarm342
11.6.3 在Swarm集群上部署应用343
11.7 Stack344
11.8 Kubernetes346
11.8.1 集群347
11.8.2 Pod347
11.8.3 Node(节点)347
11.8.4 Kubernetes Master348
11.8.5 Replication Controller348
11.8.6 Service348
第12章 大数据开发管理349
12.1 CI/CD(持续集成/持续发布)349
12.1.1 CI349
12.1.2 CD350
12.2 代码管理工具GitHub351
12.2.1 仓库(Repository)351
12.2.2 分支(Branch)352
12.2.3 提交(Commit)和请求合并(Pull request)352
12.2.4 开源代码的操作354
12.2.5 GitHub使用实例355
12.3 项目管理JIRA362
12.3.1 敏捷(Agile)开发和Scrum模式362
12.3.2 Project(项目)364
12.3.3 Issue(问题)365
12.3.4 Sprint(冲刺)367
12.3.5 Backlog(待办事项列表)368
12.3.6 Priority(事项优先级)368
12.3.7 状态和流程368
12.3.8 JIRA常用报表369
12.3.9 JIRA的主要功能总结372
12.4 项目构建工具Maven373
12.4.1 pom.xml373
12.4.2 安装Maven374
12.4.3 Maven仓库374
12.4.4 Maven Java项目结构375
12.4.5 命令列表376
12.5 大数据软件测试379
12.5.1 JUnit379
12.5.2 Allure380
附录1 数据量的单位级别382
附录2 AWS EC2创建步骤383
附录3 分布式监控系统Ganglia385
附录4 auth-ssh脚本386
目前国内大数据市场继续保持高速的发展态势,作者在与地方政府、证券金融公司的项目合作中发现,他们对大数据技术很感兴趣,并希望从大数据技术、采集、存储、访问、安全、分析与开发等方面得到指导和帮助。因此编写了这本大数据技术的入门书。
本书共12章,以Hadoop和Spark框架为线索,比较全面地介绍了Hadoop技术、Spark技术、大数据存储、大数据访问、大数据采集、大数据管理、大数据分析、大数据开发、大数据环境自动化部署(Docker和K8s)等内容。
本书适合大数据技术初学者,政府、金融机构的大数据应用决策和技术人员、IT经理、CTO、CIO等快速学习大数据技术。本书也可以作为高等院校和培训学校相关专业的培训教材。
杨正洪 著
杨正洪,毕业于美国State University of New York at Stony Brook,在美国硅谷从事AI和大数据相关研发工作 10 多年,华中科技大学和中国地质大学客座教授,湖北省 2013 年海外引进人才,拥有多项国家专利。参与了大数据和人工智能的国家标准的制定,在 2016 年参与了公安部主导的“信息安全技术:大数据平台安全管理产品安全技术要求”的国家标准制定。作者还是中关村海外智库专家顾问和住建部中规院专家顾问,担任了在美上市公司 CTO、北京某国企 CIO 和上海某国企高级副总裁等职。多年从事人工智能与大数据技术的工作,出版了《智慧城市》等多本书籍。