本书全面详细地介绍了大数据生态系统中的主流技术。全书共10章,主要包括大数据生态系统概述、大数据采集技术、大数据存储技术、大数据分析处理技术等内容,书中涵盖了Hadoop、Hive、Hbase、Kafka、Spark、Flink等技术的原理和实践,其中重点介绍了Hadoop技术、Spark技术及Flink技术。本书详细介绍了主流大数据技术框架的基本原理、环境搭建、操作使用和在典型行业中的具体应用,使读者不仅能够在宏观上全面认知大数据生态系统,而且还能在微观上深入理解大数据技术细节。本书不仅适合大数据技术初学者阅读,还可以帮助金融、电信、电商、能源、政府部门的大数据应用决策和技术人员,以及IT经理、CTO、CIO等快速学习大数据技术,并能作为大数据相关岗位培训的教程。
前言●章初识大数据1.1什么是大数据1.2大数据行业应用1.3什么是Hadoop1.4Hadoop产生背景1.5Hadoop的架构模块介绍1.6Hadoop在大数据、云计算中的位置和关系1.7国内外Hadoop应用案例介绍1.8Hadoop生态圈以及各组成部分简介1.9本章小结●第2章Hadoop之分布式文件系统HDFS2.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之分布式计算MapReduce3.1MapReduce概述3.1.1MapReduce介绍3.1.2为什么要使用MapReduce3.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中的combiner3.7MapReduce中的Shuffle3.7.1Map端3.7.2Reduce端3.7.3Shuffle小结3.8MapReduce与Yarn3.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章分布式协调服务Zookeeper4.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章分布式数据库Hbase5.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章数据仓库Hive6.1Hive基本概念6.1.1Hive简介6.1.2Hive与传统数据库对比6.2Hive的架构原理6.3Hive的数据类型6.4Hive的安装部署6.5Hive的交互方式 6.5.1Hive交互Shell6.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章日志采集框架Flume7.1Flume介绍7.1.1Flume概述7.1.2Flume的优势7.1.3Flume的运行机制7.1.4Flume采集系统结构图7.2Flume安装部署7.3Flume数据采集应用7.3.1采集目录到HDFS7.3.2采集文件到HDFS7.4项目实战5:Flume之静态拦截器的使用7.4.1案例场景7.4.2场景分析7.4.3数据流程处理分析7.4.4开发实现7.5本章小结●第8章分布式消息系统Kafka8.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整合Flume8.9.1需求描述8.9.2需求分析8.9.3需求实现8.10本章小