大数据技术入门到商业实战——Hadoop+Spark+Flink全解析
定 价:99 元
丛书名:数字化人才职场赋能系列丛书
- 作者:开课吧 组编
- 出版时间:2021/8/1
- ISBN:9787111686187
- 出 版 社:机械工业出版社
- 中图法分类:TP274
- 页码:248
- 纸张:
- 版次:
- 开本:16开
本书全面详细地介绍了大数据生态系统中的主流技术。全书共10章,主要包括大数据生态系统概述、大数据采集技术、大数据存储技术、大数据分析处理技术等内容,书中涵盖了Hadoop、Hive、Hbase、Kafka、Spark、Flink等技术的原理和实践,其中重点介绍了Hadoop技术、Spark技术及Flink技术。
本书详细介绍了主流大数据技术框架的基本原理、环境搭建、操作使用和在典型行业中的具体应用,使读者不仅能够在宏观上全面认知大数据生态系统,而且还能在微观上深入理解大数据技术细节。
本书不仅适合大数据技术初学者阅读,还可以帮助金融、电信、电商、能源、政府部门的大数据应用决策和技术人员,以及IT经理、CTO、CIO等快速学习大数据技术,并能作为大数据相关岗位培训的教程。
前言
●第1章初识大数据
1.1什么是大数据
1.2大数据行业应用
1.3什么是Hadoop
1.4Hadoop产生背景
1.5Hadoop的架构模块介绍
1.6Hadoop在大数据、云计算中的
位置和关系
1.7国内外Hadoop应用案例介绍
1.8Hadoop生态圈以及各组成部分
简介
1.9本章小结
●第2章Hadoop之分布式文件系统
HDFS
2.1构建Hadoop集群
2.1.1集群简介
2.1.2Hadoop集群部署
2.2Hadoop集群启动和停止
2.2.1Hadoop集群启动
2.2.2Hadoop集群停止
2.3HDFS的Shell命令行客户端
操作
2.4HDFS的工作机制
2.4.1HDFS概述
2.4.2HDFS的重要特性
2.4.3HDFS写数据流程
2.4.4HDFS读数据流程
2.5NameNode和SecondaryNameNode
功能剖析
2.5.1NameNode与SecondaryNameNode
解析
2.5.2元数据的checkpoint的条件
2.5.3fsimage与edits详解
2.5.4fsimage和edits文件信息查看
2.6DataNode的工作机制及存储
2.6.1DataNode工作机制
2.6.2数据完整性保证
2.6.3DataNode掉线判断时限参数
2.7HDFS的安全模式
2.8本章小结
●第3章Hadoop之分布式计算
MapReduce
3.1MapReduce概述
3.1.1MapReduce介绍
3.1.2为什么要使用MapReduce
3.2MapReduce框架结构及核心
运行机制
3.3MapReduce编程规范和示例
编写
3.3.1编程规范
3.3.2MapReduce编程入门之
单词计数
3.4MapTask数量及切片机制
3.4.1MapTask个数
3.4.2如何控制MapTask的个数
3.4.3Map并行度的经验之谈
3.5ReduceTask并行度的决定
3.6MapReduce中的combiner
3.7MapReduce中的Shuffle
3.7.1Map端
3.7.2Reduce端
3.7.3Shuffle小结
3.8MapReduce与Yarn
3.8.1Yarn概述
3.8.2Yarn的重要概念
3.9MapReduce在Yarn上运行
流程
3.9.1job 提交过程
3.9.2job 初始化过程
3.9.3Task 任务分配
3.9.4Task 任务执行
3.9.5运行进度与状态更新
3.9.6job 完成
3.10实战项目1:基于MapReduce
实现用户流量分析
3.10.1需求描述
3.10.2需求分析
3.10.3开发实现
3.10.4提交任务
3.11本章小结
●第4章分布式协调服务
Zookeeper
4.1Zookeeper简介
4.1.1Zookeeper是什么
4.1.2Zookeeper常用应用场景
4.2Zookeeper集群部署
4.2.1Zookeeper集群角色
4.2.2Zookeeper集群安装
4.3Zookeeper核心工作机制
4.3.1Zookeeper特性
4.3.2Zookeeper数据结构
4.3.3节点类型
4.4Zookeeper的Shell命令行
操作
4.4.1客户端连接
4.4.2命令行操作
4.5项目实战2:基于Zookeeper
实现服务器上下线动态感知
4.5.1需求描述
4.5.2开发实现
4.6本章小结
●第5章分布式数据库Hbase
5.1Hbase数据库介绍
5.1.1Hbase简介
5.1.2Hbase表的数据模型
5.2Hbase整体架构
5.3Hbase集群搭建
5.4Hbase的Shell命令演示
5.5Hbase的内部原理
5.5.1Hbase的存储原理
5.5.2Hbase读数据流程
5.5.3Hbase写数据流程
5.6Hbase的Flush、compact
机制
5.6.1Flush触发条件
5.6.2Flush的流程
5.6.3Compact合并机制
5.7Hbase表的预分区
5.8region合并
5.8.1region合并说明
5.8.2如何进行region合并
5.9Hbase表的rowkey设计
5.9.1rowkey长度原则
5.9.2rowkey散列原则
5.9.3rowkey唯一原则
5.10Hbase表的热点
5.10.1表的热点描述
5.10.2热点问题解决
5.11项目实战3:基于MapReduce
实现数据入库Hbase表中
5.11.1需求描述
5.11.2开发实现
5.12本章小结
●第6章数据仓库Hive
6.1Hive基本概念
6.1.1Hive简介
6.1.2Hive与传统数据库对比
6.2Hive的架构原理
6.3Hive的数据类型
6.4Hive的安装部署
6.5Hive的交互方式
6.5.1Hive交互Shell
6.5.2Hive JDBC服务
6.5.3Hive的命令
6.6Hive的DDL操作
6.6.1数据库的DDL操作
6.6.2表的DDL操作
6.7Hive的分区表
6.8Hive的静态分区和动态
分区
6.8.1静态分区
6.8.2动态分区
6.9Hive的数据导入
6.10Hive数据导出
6.11项目实战4:基于Hive分析
用户搜索日志数据
6.11.1需求描述
6.11.2数据格式
6.11.3开发实现
6.12本章小结
●第7章日志采集框架Flume
7.1Flume介绍
7.1.1Flume概述
7.1.2Flume的优势
7.1.3Flume的运行机制
7.1.4Flume采集系统结构图
7.2Flume安装部署
7.3Flume数据采集应用
7.3.1采集目录到HDFS
7.3.2采集文件到HDFS
7.4项目实战5:Flume之静态拦
截器的使用
7.4.1案例场景
7.4.2场景分析
7.4.3数据流程处理分析
7.4.4开发实现
7.5本章小结
●第8章分布式消息系统Kafka
8.1Kafka概述
8.1.1Kafka定义
8.1.2Kafka的特性
8.1.3Kafka集群架构和角色
8.2Kafka集群安装部署
8.3Kafka命令行的管理使用
8.4Kafka生产者和消费者的API
代码开发
8.4.1生产者代码开发
8.4.2消费者代码开发
8.5Kafka分区策略
8.6为什么Kafka速度那么快
8.7Kafka的文件存储机制
8.7.1文件存储概述
8.7.2Segment文件
8.7.3Kafka如何快速查询数据
8.7.4Kafka高效文件存储
设计特点
8.8consumer消费原理
8.8.1consumer与topic关系
8.8.2Offset管理
8.8.3coordinator工作机制
8.9项目实战6: Kafka整合
Flume
8.9.1需求描述
8.9.2需求分析
8.9.3需求实现
8.10本章小结
●第9章Spark内存计算框架
9.1Spark 概述
9.1.1Spark简介
9.1.2Spark生态圈概述
9.1.3Spark运行模式
9.2Spark环境部署实战
9.3Spark编程模型RDD
9.3.1RDD的概述
9.3.2RDD的五大特性
9.3.3RDD的构建
9.3.4RDD的transformation算子
操作
9.3.5RDD的action算子操作
9.3.6RDD的依赖关系
9.3.7RDD的血统和缓存机制
9.3.8RDD的checkpoint机制
9.3.9项目实战7:基于RDD编程
实现流量日志分析
9.4SparkSQL结构化数据处理
9.4.1SparkSQL简介
9.4.2SparkSQL的四大特性
9.4.3DataFrame概述
9.4.4DataFrame常用操作
9.4.5DataSet概述
9.4.6构建DataSet
9.4.7SparkSQL读取外部数据源
9.5SparkStreaming实时
处理模块
9.5.1SparkStreaming简介
9.5.2SparkStreaming架构流程
9.5.3DStream概述
9.5.4DStream的transformations
算子操作
9.5.5DStream的output operations
算子操作
9.5.6SparkStreaming的checkpoint
容错机制
9.6项目实战8:SparkStreaming整合
Kafka
9.7本章小结
●第10章Flink实时流处理
10.1Flink概述
10.1.1Flink介绍
10.1.2Flink的特点
10.1.3Flink 的应用场景
10.1.4Flink基本技术栈
10.1.5Flink任务提交模型
10.2Flink 环境部署实战
10.2.1Standalone HA模式部署
10.2.2Flink on Yarn 模式部署
10.2.3Flink on Yarn 任务提交
流程
10.3Flink编程入门案例
10.3.1实时处理代码开发
10.3.2离线处理代码开发
10.4DataStream编程
10.4.1DataStream的数据源
10.4.2DataStream转换算子
10.4.3DataStream的sink数据
目标
10.4.4任务并行度、slot、task
10.4.5task之间的数据传输策略
10.4.6Operator Chain操作链
10.5Flink中的状态保存和恢复
10.5.1State概述
10.5.2State类型
10.5.3Flink的StateBackend
状态保存
10.5.4Flink的checkpoint检查
点机制
10.5.5Flink的savepoint保存点
机制
10.6项目实战9: Flink流式处理
集成Kafka
10.7Flink中的窗口window
10.7.1window概念
10.7.2window类型
10.7.3TimeWindow分类
10.7.4Window API
10.7.5窗口函数
10.8Flink的WaterMark机制
10.8.1Flink的Time三兄弟
10.8.2WaterMark的概念
10.8.3WaterMark的原理
10.8.4生活场景理解WaterMark
10.8.5WaterMark 使用存在
的三种情况
10.8.6WaterMark结合EventTime
实战
10.8.7迟到的数据处理机制
10.9Flink的Table和SQL
10.9.1Table与SQL基本介绍
10.9.2为什么需要SQL
10.9.3Flink Table和SQL开发
环境构建
10.9.4Flink Table API 操作
10.9.5Flink SQL 操作
10.10项目实战10: 基于FlinkSQL
读取Kafka数据到MySQL
表中
10.11本章小结