写作背景

在第一版的基础上,根据近几年大数据领域最新出现的各种流行组件逐个进行介绍,并以两个具体的示例贯穿各个章节,对组件之间的协同工作关系进行剖析。新增大数据平台架构选型及最佳实践案例、大数据治理、流计算开发、基于docker的大数据运维部署等部分,书中所使用的示例程序,是基于笔者在进行企业培训时,企业提出的业务需求而展开。从而使示例程序更有代表性。

本书封面
《自己动手做大数据系统》第一版于2016年9月由电子工业出版社出版,和本书在内容上前后呼应,也提供示例代码及集群登录环境。
查看本书第一版

本书特色

  • 1. 在一版的基础上,按照离线大数据和流式大数据两个场景进行划分,更加有针对性。
  • 2. 代码实现上由一版的java为主迁移到二版的以python为主,紧贴主流编程语言。
  • 3. 代码的可用性大大提高。一版的爬虫部分代码,随着目标网站的样式变更,书中代码无法继续运行。二版的爬虫目标网站,由作者提供模拟网站,保证读者运行爬虫代码持续有效。
  • 4. 提供和书本配套的在线大数据环境,读者可以在线查看组件配置文件。
  • 5. 提供和本书配套的大数据组件docker文件下载。读者可以在本地搭建和本书一致的模拟环境。
  • 6. 提供读者QQ群和微信号在线答疑。

章节目录

第一部分 大数据概述
第1章 大数据的时代背景及应用落地
1.1 大数据与“云大物区智”的关联和业务场景应用
1.2 大数据平台业务场景应用及最佳实践
1.3 大数据平台技术架构选型和产品对比
第2章 大数据系统的安装及配置
2.1 服务器及操作系统的准备
2.2 JDK/Python/Scala
2.3 Hadoop
 2.3.1 安装环境的确认及文件准备
 2.3.2 配置环境变量及无密码传输
 2.3.3 配置Hadoop的对应参数
 2.3.4 启动并验证Hadoop安装
2.4 Sqoop
 2.4.1. Sqoop安装介质的准备
 2.4.2. Sqoop的相关安装及配置
 2.4.3. Sqoop运行验证
2.5 Hive
 2.5.1. 安装文件的准备
 2.5.2. 配置环境变量和安装MySQL
 2.5.3. 配置Hive参数
 2.5.4. 验证Hive的相关服务
2.6 Zookeeper和HBase
 2.6.1. Zookeeper安装介质的准备
 2.6.2. Zookeeper相关安装及配置
 2.6.3. Zookeeper运行验证
 2.6.4. HBase安装介质的准备
 2.6.5. HBase的相关安装及配置
 2.6.6. HBase运行验证
2.7 Flume
2.8 Kafka
2.9 Spark
 2.9.1. Spark安装介质的准备
 2.9.2. Spark的安装及配置
 2.9.3. Spark运行验证
2.10 Flink
2.11 开源大数据系统各组件的组合
2.12 CDH
2.13 FusionInsight
2.14 小结
第二部分 离线大数据处理
第3章 使用Python爬虫获取数据
3.1 Python爬虫模块的安装
 3.1.1 requests模块的安装及验证
 3.1.2 Beautiful Soup模块的安装及验证
3.2 抓取并解析JSON数据
 3.2.1 利用Fiddler找出抓取的网址
 3.2.2 解析JSON对象
3.3 抓取并解析HTML中的数据
 3.3.1 使用Beautiful Soup提取网页内容
 3.3.2 保存抓取内容
 3.3.3 不同爬虫模块所适用的场景
3.4 使用Python提取文章的关键字
 3.4.1 中文分词和关键字的提取
 3.4.2 Python中文分词模块jieba
 3.4.3 使用自定义词典和停用词
 3.4.4 提取文章的关键字
3.5 小结
第4章 Hive在大数据中的角色
4.1 Hive的核心概念及配置使用
 4.1.1 Hive在大数据生态系统中的作用
 4.1.2 Hive的几种使用方法
 4.1.3 使用Tez引擎替代MapReduce
4.2 概要设计和物理模型的创建
 4.2.1 使用Hive要解决哪些问题
 4.2.2 数据库的概要设计
 4.2.3 物理模型的定义及创建表
4.3 加载爬虫数据
4.4 数据合并、去重和转换
 4.4.1 数据的合并
 4.4.2 利用临时表去掉重复的数据
 4.4.3 使用Hive内置函数转换数据
4.5 使用UDF实现数据的转换
 4.5.1 用户自定义函数的实现原理
 4.5.2 利用Python实现UDF
 4.5.3 数据进入rpt表
4.6 使用Python操作Hive
 4.6.1 安装impyla模块
 4.6.2 Python读取数据示例
4.7 ETL数据调度和数据治理
 4.7.1 数据处理的自动化
 4.7.2 数据治理
4.8 小结
第5章 使用HBase实现大数据存储
5.1 非关系型数据库及HBase
5.2 HBase的几个核心概念
5.3 HBase数据操作命令
 5.3.1 HBase客户端
 5.3.2 创建表及插入数据
 5.3.3 按照行键值检索
 5.3.4 扫描检索
 5.3.5 删除表和数据
5.4 使用Python操作HBase
 5.4.1 启动HBaseThriftServer
 5.4.2 安装happybase模块
 5.4.3 插入数据及删除数据
 5.4.4 组合查询代码示例
5.5 把Hive数据导入HBase
5.6 用Hive外部表读取HBase数据
5.7 小结
第6章 Spark数据分析引擎
6.1 Spark简介
6.2 Spark集群的配置及启动
 6.2.1 Spark集群的安装与配置
 6.2.2 作业提交方式
 6.2.3 操作界面的启动类型
 6.2.4 三类Web监控界面
6.3 调用Hive数据
 6.3.1 使用beeline客户端
 6.3.2 使用HiveContext对象
 6.3.3 使用SparkSQL
 6.3.4 使用JDBC
6.4 调用HBase数据
 6.4.1 设定环境变量
 6.4.2 读数据示例
6.5 使用PySpark进行数据分析
 6.5.1 将RDD转换为DataFrame
 6.5.2 SparkSQL等值连接
 6.5.3 使用matplotlib绘制直方图
6.6 小结
第7章 使用Flask实现数据展示
7.1 Flask框架简介及站点搭建流程
7.2 Flask微框架的特性
7.3 使用MVC模式搭建项目框架
 7.3.1 访问地址
 7.3.2 MVC模式简介
 7.3.3 项目目录结构
7.4 检索及加载新闻数据
 7.4.1 模型层的开发
 7.4.2 模型层的单元测试
 7.4.3 控制器层开发
 7.4.4 控制器单元测试
 7.4.5 视图层开发
7.5 小结
第二部分技术点总结
第三部分 流式大数据处理
第8章 使用Flume获取网站访问日志
8.1 Flume的安装部署及工作原理
 8.1.1 Flume简介及安装
 8.1.2 Flume的数据流模型
8.2 核心组件的配合使用
 8.2.1 6个核心组件
 8.2.2 配置文件
 8.2.3 flume-ng命令
8.3 各种数据组合的流动方式
 8.3.1 将日志收集至文件
 8.3.2 Sink的多路复用
 8.3.3 使用Avro作为数据源
 8.3.4 Channel的多路复用
8.4 apache服务器的日志格式
8.5 合并两个网站的日志
8.6 小结
第9章 Kafka的安装、配置及其与Flume的整合
9.1 Kafka的特性及安装、配置
 9.1.1 Kafka的特性和适用场合
 9.1.2 安装、配置kafka
9.2 几种术语
9.3 Broker的使用方法
 9.3.1 单节点单Broker
 9.3.2 单节点多Broker
 9.3.3 分布式Broker
 9.3.4 分区及偏移量
 9.3.5 分区选择策略
9.4 分布式生产者/消费者
 9.4.1 两个生产者
 9.4.2 消费者组
9.5 Kafka Connector
 9.5.1 File Source
 9.5.2 File Sink
9.6 Kafka和Flume的整合
 9.6.1 给Flume提供数据
 9.6.2 从Flume中获取数据
9.7 使用Python连接Kafka
9.8 小结
第10章 Redis数据库简介
10.1 Redis的特点及适用场景
10.2 Redis的安装及命令行使用方法
 10.2.1 Redis的安装及启动
 10.2.2 命令行客户端
 10.2.3 5种数据类型
 10.2.4 字符串命令
10.3 使用Python操作Redis
10.4 使用Java操作Redis
10.5 小结
第11章 Flink简介及其与Kafka的整合
11.1 Flink概述及其和Spark的区别
11.2 Flink的架构、特性及工作流程
11.3 安装和部署Flink
 11.3.1 单节点的安装和配置部署
 11.3.2 集群的安装和部署
 11.3.3 利用ZooKeeper实现Flink的高可用
11.4 Flink的作业提交方式
 11.4.1 以Standalone方式运行
 11.4.2 利用YARN Session运行
 11.4.3 利于Python调用Flink服务
 11.4.4 使用REST API查看状态
11.5 Flink-Kafka Connector
 11.5.1 Flink为Kafka提供数据
 11.5.2 Flink从Kafka接收数据
11.6 使用Flink统计PageView
 11.6.1 Flink开发的一般步骤
 11.6.2 Flink DataStream API
 11.6.3 将数据落地至Redis和HBase
11.7 小结
第12章 网站PV流量动态展示
12.1 百度ECharts图表功能简介
12.2 页面访问量的动态统计
 12.2.1 模型层的开发
 12.2.2 控制器层的开发
 12.2.3 视图层的开发
12.3 生成词云图和占比饼图
 12.3.1 词云图模型层的开发
 12.3.2 词云图控制器的开发
 12.3.3 词云图视图层的开发
 12.3.4 关键字饼图的模型层开发
 12.3.5 关键字饼图的控制器层开发
 12.3.6 关键字饼图的视图层开发
12.4 访问日志检索
12.5 小结
第三部分技术点总结
第四部分 云平台搭建
第13章 搭建基于云平台的容器级数据系统
13.1 云平台
 13.1.1 云平台架构
 13.1.2 云平台的搭建及部署
 13.1.3 云平台的高级配置
13.2 基于云平台的容器集群
 13.2.1 Magnum
 13.2.2 Docker Swarm
 13.2.3 Mesos和 Marathon 结合
 13.2.4 Kubernetes
13.3 基于容器的大数据系统
13.4 小结
本书讲解的大数据组件有10多种,读者在本机上无法运行大数据模拟环境。作者制作了基于Docker的大数据组件镜像文件,请使用微信小程序“飞谷云大数据”查看下载。该镜像文件中包含的组件包括Java、Scala、Python、Hadoop、HBase、Hive、Spark、Redis、Flume、Kafka、Flink、Apache HTTP Server、MySQL等。
查看大数据组件Docker镜像环境使用说明

写作团队

  • 刘未昕
  • 张粤磊
  • 张魁
  • 吴茂贵

本书作者均有15年以上IT领域从业及培训经验,研究方向包括数据分析挖掘、人工智能、大数据开发及虚拟化技术。已经出版和即将出版的书包括《自己动手做大数据系统》第一版《深度实践Spark机器学习》《Python深度学习基于TensorFlow》《Python深度学习基于Pytorch》和《Python从基础到人工智能》

勘误与支持

由于水平和能力有限,尽管我们仔细、认真,但错误还是不可避免。如果您在书中发现不妥或错误之处,请在此处留下您的宝贵意见,我们将非常感谢您的支持和帮助。您也可以直接在QQ群里面进行提问。