Hadoop大数据开发实战
出版时间: 2019
本书将大数据技术生态圈主流技术框架的应用与发展、搭建Hadoop大数据分布式系统集群平台、大数据分布式文件系统HDFS(Hadoop Distributed File System)、大数据分布式并行计算框架MapReduce、大数据汽车销售数据统计分析项目5大模块分为11章内容进行阐述。具体分布情况如下:第1章是大数据概论,介绍大数据的发展背景及基本概念;第2章是搭建Hadoop分布式集群;第3~6章是HDFS分布式文件系统入门、HDFS接口、HDFS的运行机制、Hadoop I/O流操作;第7~10章是初识MapReduce编程模型、MapReduce应用编程开发、MapReduce编程案例、MapReduce运行机制与YARN平台;第11章是汽车销售数据统计分析项目实战。本书将理论与实践相结合,介绍了大数据的核心技术,并通过介绍一个企业的开发项目,深入讲解大数据技术在实际工作中的应用。本书是为所有热爱大数据、打算从事大数据相关工作的读者而编写的,适合有Java编程基础的学习者参考使用,也适合作为高等院校、培训机构的大数据技术教材。
目录
- 第1章大数据概论1
- 1.1大数据的学习基础1
- 1.2大数据的背景2
- 1.3对大数据的不同认识2
- 1.3.1资深编程者眼中的大数据2
- 1.3.2营销者和学者眼中的大数据3
- 1.3.3商家看大数据4
- 1.4大数据的行业案例4
- 1.4.1电子地图4
- 1.4.2电子商务——用户画像5
- 1.5大数据的基本概念6
- 1.5.1两个核心6
- 1.5.2分布式存储6
- 1.5.3分布式计算7
- 1.6大数据技术生态圈7
- 本章总结8
- 本章习题8
- 第2章搭建Hadoop分布式集群9
- 2.1云平台9
- 2.1.1了解云平台9
- 2.1.2安装VMware软件9
- 2.2安装CentOS 610
- 2.2.1安装CentOS 610
- 2.2.2安装中的关键问题15
- 2.2.3克隆HadoopSlave和HadoopSlave116
- 2.2.4安装SSH客户端传输软件18
- 2.2.5安装Xshell20
- 2.3Linux系统配置23
- 2.4Hadoop的配置部署39
- 本章总结47
- 本章习题47
- 第3章HDFS入门48
- 3.1Hadoop分布式文件系统HDFS48
- 3.1.1认识HDFS48
- 3.1.2HDFS的优势49
- 3.1.3HDFS局限性50
- 3.1.4HDFS特性51
- 3.2HDFS核心设计52
- 3.2.1数据块53
- 3.2.2数据块复制53
- 3.2.3数据块副本的存放策略54
- 3.2.4机架感知55
- 3.2.5数据块的备份数56
- 3.2.6安全模式56
- 3.2.7负载均衡57
- 3.2.8心跳机制60
- 3.3HDFS体系结构60
- 3.3.1主从架构61
- 3.3.2核心组件功能61
- 3.3.3数据块损坏处理63
- 本章总结64
- 本章习题64
- 第4章HDFS接口65
- 4.1HDFS命令行接口65
- 4.2HDFS Java接口67
- 4.2.1在Linux虚拟机中安装Eclipse68
- 4.2.2从Hadoop URL读取数据69
- 4.2.3使用FileSystem读取文件70
- 4.2.4FSDataInputStream对象随机读取71
- 4.2.5使用FileSystem写入数据72
- 4.2.6FSDataOutputStream对象批量写入73
- 4.2.7查询文件状态FileStatus74
- 4.2.8创建目录75
- 4.2.9删除文件与目录76
- 本章总结77
- 本章习题77
- 第5章HDFS的运行机制78
- 5.1HDFS中数据流的读写78
- 5.1.1RPC流程78
- 5.1.2RPC实现模型79
- 5.1.3RPC Client主要流程81
- 5.1.4RPC Server实现模型82
- 5.1.5文件读取83
- 5.1.6文件写入84
- 5.2HA机制85
- 5.2.1HDFS的HA机制85
- 5.2.2集群节点任务规划87
- 5.2.3初识ZooKeeper87
- 5.2.4安装部署ZooKeeper89
- 5.2.5格式化ZooKeeper集群93
- 5.2.6配置Hadoop94
- 5.2.7启动JournalNode共享存储集群99
- 5.2.8格式化ActiveNameNode100
- 5.2.9启动ZooKeeperFailoverController101
- 5.2.10启动ActiveNameNode101
- 5.2.11格式化StandbyNameNode102
- 5.2.12启动所有DataNode节点102
- 5.2.13验证HA的故障自动转移103
- 5.3Federation机制105
- 5.3.1初始HDFS Federation机制105
- 5.3.2HDFS Federation架构原理106
- 本章总结107
- 本章习题107
- 第6章Hadoop I/O流操作108
- 6.1数据完整性108
- 6.1.1数据发生错误108
- 6.1.2数据的检测109
- 6.1.3数据完整性机制109
- 6.2压缩111
- 6.2.1压缩格式111
- 6.2.2Hadoop中对压缩格式的实现Codec111
- 6.2.3压缩格式是否支持切分114
- 6.3序列化114
- 6.3.1序列化简介114
- 6.3.2反序列化115
- 6.3.3序列化的分布式应用115
- 6.3.4初识Hadoop序列化115
- 6.3.5Hadoop序列化实现116
- 6.3.6接口Comparable & Comparator与WritableComparable & WritableComparator117
- 6.3.7Writable类123
- 6.4基于文件的数据结构SequenceFile125
- 本章总结127
- 本章习题127
- 第7章初识MapReduce编程模型128
- 7.1MapReduce编程框架128
- 7.1.1函数式编程模型128
- 7.1.2MapReduce编程模型概念129
- 7.1.3MapReduce的设计目标130
- 7.2WordCount编程实例130
- 7.2.1案例需求130
- 7.2.2搭建开发环境Eclipse131
- 7.2.3代码实现132
- 7.2.4代码测试135
- 7.2.5案例剖析139
- 7.3Hadoop MapReduce架构141
- 7.3.1Hadoop MapReduce架构的基本概念141
- 7.3.2MapReduce架构核心组件142
- 本章总结144
- 本章习题144
- 第8章MapReduce应用编程开发145
- 8.1MapReduce编程开发145
- 8.1.1设计思路145
- 8.1.2搜索引擎数据处理实战147
- 8.2MapReduce在集群上的运作152
- 8.2.1打包作业152
- 8.2.2启动作业154
- 8.2.3通过WebUI查看Job状态154
- 8.3MapReduce的类型与格式155
- 8.3.1combiner函数155
- 8.3.2MapReduce框架Partitioner分区方法157
- 8.3.3MapReduce输入格式158
- 本章总结166
- 本章习题166
- 第9章MapReduce编程案例167
- 9.1数据去重167
- 9.1.1实例表述167
- 9.1.2设计思路168
- 9.1.3程序代码168
- 9.1.4代码结果169
- 9.2数据排序170
- 9.2.1实例表述171
- 9.2.2设计思路171
- 9.2.3程序代码171
- 9.2.4代码结果173
- 9.3平均成绩174
- 9.3.1实例表述174
- 9.3.2设计思路175
- 9.3.3程序代码175
- 9.3.4代码结果177
- 9.4多表关联178
- 9.4.1实例表述178
- 9.4.2设计思路179
- 9.4.3程序代码179
- 9.4.4代码结果181
- 9.5二次排序182
- 9.5.1实例描述182
- 9.5.2设计思路182
- 9.5.3程序代码182
- 9.5.4代码结果185
- 本章总结186
- 本章习题186
- 第10章MapReduce运行机制与YARN平台187
- 10.1剖析MapReduce作业运行机制187
- 10.1.1提交作业的方式187
- 10.1.2作业的运行组件187
- 10.1.3作业的运行解析188
- 10.2Shuffle和排序190
- 10.2.1Mapper端190
- 10.2.2Reducer端193
- 10.2.3MapReduce性能调优196
- 10.3任务的执行197
- 10.4作业的调度199
- 10.4.1先进先出调度器199
- 10.4.2公平调度器199
- 10.4.3计算能力调度器200
- 10.5YARN平台简介200
- 10.5.1YARN的诞生200
- 10.5.2YARN的工作原理200
- 10.6YARN平台架构201
- 本章总结204
- 本章习题204
- 第11章汽车销售数据统计分析项目205
- 11.1数据概况205
- 11.2项目实战206
- 11.2.1统计乘用车辆和商用车辆的数量和销售额分布206
- 11.2.2统计某年每个月的汽车销售数量的比例208
- 11.2.3统计某个月份各市区县的汽车销售的数量210
- 11.2.4用户数据市场分析——统计买车的男女比例213
- 11.2.5统计不同所有权、型号和类型汽车的销售数量216
- 11.2.6统计不同车型的用户的年龄和性别218
- 11.2.7统计分析不同车型销售数据219
- 11.2.8通过不同类型(品牌)汽车销售情况统计发动机型号和燃料种类222
- 11.2.9统计同排量不同品牌汽车的销售量224
- 本章总结226
-
本章习题226