当前位置:首页 > 工业技术
Hadoop海量数据处理  技术详解与项目实战
Hadoop海量数据处理  技术详解与项目实战

Hadoop海量数据处理 技术详解与项目实战PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:范东来著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115380999
  • 页数:318 页
图书介绍:本书主要介绍Hadoop技术的相关知识,并将理论知识与实际项目相结合。全书共分为三个部分:基础篇、应用篇和结束篇。基础篇详细介绍了Hadoop、MapReduce、HDFS、Hive和Sqoop,并深入探讨了Hadoop的运维和调优;应用篇则包含了一个具有代表性的完整的基于Hadoop的商业智能系统的设计和实现;结束篇对全书进行总结,并对技术发展做了展望。本书最大的特点是面向实践。
《Hadoop海量数据处理 技术详解与项目实战》目录

基础篇:Hadoop基础 2

第1章 绪论 2

1.1 Hadoop和云计算 2

1.1.1 Hadoop的电梯演讲 2

1.1.2 Hadoop生态圈 3

1.1.3 云计算的定义 5

1.1.4 云计算的类型 7

1.1.5 Hadoop和云计算 8

1.2 Hadoop和大数据 9

1.2.1 大数据的定义 9

1.2.2 大数据的结构类型 11

1.2.3 大数据行业应用实例 12

1.2.4 Hadoop和大数据 13

1.2.5 其他大数据处理平台 15

1.3 数据挖掘和商业智能 16

1.3.1 数据挖掘的定义 16

1.3.2 数据仓库 18

1.3.3 操作数据库系统和数据仓库系统的区别 19

1.3.4 为什么需要分离的数据仓库 19

1.3.5 商业智能 20

1.3.6 大数据时代的商业智能 21

第2章 环境准备 23

2.1 Hadoop的发行版本选择 23

2.1.1 Apache Hadoop 23

2.1.2 CDH 23

2.1.3 Hadoop的版本 24

2.1.4 如何选择Hadoop的版本 26

2.2 Hadoop架构 27

2.2.1 Hadoop HDFS架构 27

2.2.2 Hadoop MapReduce架构 28

2.2.3 Hadoop架构 29

2.3 安装Hadoop 31

2.3.1 安装运行环境 32

2.3.2 修改主机名和用户名 37

2.3.3 配置静态IP地址 38

2.3.4 配置SSH无密码连接 39

2.3.5 安装JDK 40

2.3.6 配置Hadoop 41

2.3.7 格式化HDFS 44

2.3.8 启动Hadoop并验证安装 44

2.4 安装Hive 46

2.4.1 安装元数据库 46

2.4.2 修改Hive配置文件 47

2.4.3 验证安装 48

2.5 安装Sqoop 48

2.6 Eclipse Hadoop插件的安装和使用 49

2.6.1 安装并配置Eclipse Hadoop插件 49

2.6.2 Eclipse插件的使用 51

第3章 Hadoop的基石:HDFS 53

3.1 认识HDFS 53

3.1.1 HDFS的设计理念 55

3.1.2 HDFS的架构 55

3.1.3 HDFS容错 59

3.2 HDFS读取文件和写入文件 60

3.2.1 块的分布 60

3.2.2 数据读取 61

3.2.3 写入数据 62

3.2.4 数据完整性 64

3.3 如何访问HDFS 65

3.3.1 命令行接口 65

3.3.2 Java API 68

3.3.3 其他常用的接口 78

3.3.4 Web UI 78

第4章 分而治之的智慧:MapReduce 80

4.1 认识MapReduce 80

4.1.1 MapReduce的编程思想 80

4.1.2 MapReduce运行环境 83

4.1.3 MapReduce作业和任务 85

4.1.4 MapReduce的计算资源划分 86

4.1.5 MapReduce的局限性 87

4.2 Hello WordCount 87

4.2.1 WordCount的设计思路 87

4.2.2 编写WordCount 88

4.2.3 运行程序 91

4.2.4 还能更快吗 92

4.3 MapReduce的过程 93

4.3.1 从输入到输出 94

4.3.2 input 94

4.3.3 map及中间结果的输出 96

4.3.4 shuffle 98

4.3.5 reduce及最后结果的输出 99

4.3.6 sort 99

4.3.7 作业的进度组成 100

4.4 MapReduce的工作机制 101

4.4.1 作业提交 101

4.4.2 作业初始化 102

4.4.3 任务分配 102

4.4.4 任务执行 103

4.4.5 任务完成 103

4.4.6 推测执行 103

4.4.7 MapReduce容错 104

4.5 MapReduce编程 105

4.5.1 Writable类 105

4.5.2 编写Writable类 108

4.5.3 编写Mapper类 109

4.5.4 编写Reducer类 111

4.5.5 控制shuffle 112

4.5.6 控制sort 113

4.5.7 编写main函数 115

4.6 MapReduce编程实例:连接 116

4.6.1 设计思路 116

4.6.2 编写Mapper类 117

4.6.3 编写Reducer类 118

4.6.4 编写main函数 119

4.7 MapReduce编程实例:二次排序 120

4.7.1 设计思路 120

4.7.2 编写Mapper类 121

4.7.3 编写Partitioner类 121

4.7.4 编写SortComparator类 122

4.7.5 编写Reducer类 123

4.7.6 编写main函数 123

4.8 MapReduce编程实例:全排序 125

4.8.1 设计思路 125

4.8.2 编写代码 127

第5章 SQL on Hadoop:Hive 129

5.1 认识Hive 129

5.1.1 从MapReduce到SQL 130

5.1.2 Hive架构 132

5.1.3 Hive与关系型数据库的区别 134

5.1.4 Hive命令的使用 135

5.2 数据类型和存储格式 137

5.2.1 基本数据类型 137

5.2.2 复杂数据类型 137

5.2.3 存储格式 138

5.2.4 数据格式 139

5.3 HQL:数据定义 140

5.3.1 Hive中的数据库 140

5.3.2 Hive中的表 142

5.3.3 创建表 142

5.3.4 管理表 144

5.3.5 外部表 144

5.3.6 分区表 145

5.3.7 删除表 147

5.3.8 修改表 147

5.4 HQL:数据操作 148

5.4.1 装载数据 148

5.4.2 通过查询语句向表中插入数据 149

5.4.3 利用动态分区向表中插入数据 149

5.4.4 通过CTAS加载数据 150

5.4.5 导出数据 150

5.5 HQL:数据查询 150

5.5.1 SELECT...FROM语句 151

5.5.2 WHERE语句 152

5.5.3 GROUP BY和HAVING语句 153

5.5.4 JOIN语句 153

5.5.5 ORDERBY和SORTBY语句 156

5.5.6 DISTRIBUTE BY和SORT BY语句 157

5.5.7 CLUSTER BY 157

5.5.8 分桶和抽样 157

5.5.9 UNION ALL 158

5.6 Hive函数 158

5.6.1 标准函数 158

5.6.2 聚合函数 158

5.6.3 表生成函数 158

5.7 Hive用户自定义函数 159

5.7.1 UDF 159

5.7.2 UDAF 159

5.7.3 UDTF 161

5.7.4 运行 163

第6章 SQL to Hadoop:Sqoop 164

6.1 一个Sqoop示例 164

6.2 导入过程 166

6.3 导出过程 168

6.4 Sqoop的使用 169

6.4.1 codegen 170

6.4.2 create-hive-table 170

6.4.3 eval 171

6.4.4 export 171

6.4.5 help 172

6.4.6 import 172

6.4.7 import-all-tables 173

6.4.8 iob 174

6.4.9 list-databases 174

6.4.10 list-tables 175

6.4.11 merge 175

6.4.12 metastore 176

6.4.13 version 176

第7章 Hadoop性能调优和运维 177

7.1 Hadoop客户端 177

7.2 Hadoop性能调优 178

7.2.1 选择合适的硬件 178

7.2.2 操作系统调优 180

7.2.3 JVM调优 181

7.2.4 Hadoop参数调优 181

7.3 Hive性能调优 187

7.3.1 JOIN优化 187

7.3.2 Reducer的数量 187

7.3.3 列裁剪 187

7.3.4 分区裁剪 188

7.3.5 GROUP BY优化 188

7.3.6 合并小文件 189

7.3.7 MULTI-GROUP BY和MULTI-INSERT 189

7.3.8 利用UNION ALL特性 190

7.3.9 并行执行 190

7.3.10 全排序 190

7.3.11 TopN 191

7.4 Hadoop运维 191

7.4.1 基础运维 191

7.4.2 集群节点动态扩容和卸载 192

7.4.3 利用SecondaryNameNode恢复NameNode 193

7.4.4 常见的运维技巧 194

7.4.5 常见的异常处理 195

应用篇:商业智能系统项目实战 198

第8章 在线图书销售商业智能系统 198

8.1 项目背景 198

8.2 功能需求 199

8.2.1 并行数据导入 199

8.2.2 数据清洗 199

8.2.3 购书转化率分析 200

8.2.4 购书用户聚类分析 200

8.2.5 其他分析需求 200

8.2.6 并行数据导出 200

8.2.7 报表系统 200

8.3 非功能需求 200

8.3.1 性能需求 200

8.3.2 可靠性需求和可用性需求 201

8.3.3 容错性需求 201

8.3.4 硬件需求 201

8.3.5 扩展性需求 201

第9章 系统结构设计 202

9.1 系统架构 202

9.1.1 数据源 202

9.1.2 数据导入层 202

9.1.3 数据存储层 203

9.1.4 数据获取层 203

9.1.5 数据管理层 203

9.1.6 数据服务层 204

9.1.7 数据应用层 204

9.1.8 数据访问层 204

9.2 功能设计 204

9.3 数据仓库结构 205

9.4 系统网络拓扑与硬件选型 209

9.4.1 系统网络拓扑 209

9.4.2 系统硬件选型 210

9.5 技术选型 211

9.5.1 平台选型 211

9.5.2 系统开发语言选型 212

第10章 在开发之前 213

10.1 新建一个工程 213

10.1.1 安装Python 213

10.1.2 安装PyDev插件 214

10.1.3 新建PyDev项目 216

10.2 代码目录结构 216

10.3 项目的环境变量 217

10.4 如何调试 218

第11章 实现数据导入导出模块 219

11.1 处理流程 219

11.2 导入方式 220

11.2.1 全量导入 220

11.2.2 增量导入 221

11.3 读取配置文件 221

11.4 SqoopUtil 225

11.5 整合 226

11.6 导入说明 226

11.6 导入说明 226

11.7 导出模块 227

第12章 实现数据分析工具模块 230

12.1 处理流程 230

12.2 读取配置文件 231

12.3 HiveUtil 232

12.4 整合 233

12.5 数据分析和报表 233

12.5.1 OLAP和Hive 233

12.5.2 OLAP和多维模型 234

第13章 实现业务数据的数据清洗模块 237

13.1 ETL 237

13.1.1 数据抽取 237

13.1.2 数据转换 237

13.1.3 数据清洗工具 238

13.2 处理流程 238

13.3 数据去重 239

13.3.1 产生原因 239

13.3.2 去重方法 240

13.3.3 一个很有用的UDF:RowNum 240

13.3.4 第二种去重方法 242

13.3.5 进行去重 242

第14章 实现点击流日志的数据清洗模块 246

14.1 数据仓库和Web 246

14.2 处理流程 248

14.3 字段的获取 248

14.4 编写MapReduce作业 250

14.4.1 编写IP地址解析器 250

14.4.2 编写Mapper类 254

14.4.3 编写Partitioner类 257

14.4.4 编写SortComparator类 258

14.4.5 编写Reducer类 260

14.4.6 编写main函数 261

14.4.7 通过Python调用jar文件 262

14.5 还能做什么 263

14.5.1 网站分析的指标 263

14.5.2 网站分析的决策支持 264

第15章 实现购书转化率分析模块 265

15.1 漏斗模型 265

15.2 处理流程 266

15.3 读取配置文件 268

15.4 提取所需数据 269

15.5 编写转化率分析MapReduce作业 269

15.5.1 编写Mapper类 270

15.5.2 编写Partitioner类 272

15.5.3 编写SortComparator类 273

15.5.4 编写Reducer类 274

15.5.5 编写Driver类 276

15.5.6 通过Python模块调用jar文件 278

15.6 对中间结果进行汇总得到最终结果 279

15.7 整合 280

第16章 实现购书用户聚类模块 281

16.1 物以类聚 281

16.2 聚类算法 282

16.2.1 k-means算法 283

16.2.2 Canopy算法 284

16.2.3 数据向量化 285

16.2.4 数据归一化 286

16.2.5 相似性度量 286

16.3 用MapReduce实现聚类算法 288

16.3.1 Canopy算法与MapReduce 288

16.3.2 k-means算法与MapReduce 288

16.3.3 Apache Mahout 289

16.4 处理流程 289

16.5 提取数据并做归一化 290

16.6 维度相关性 292

16.6.1 维度的选取 292

16.6.2 相关系数与相关系数矩阵 293

16.6.3 计算相关系数矩阵 294

16.7 使用Mahout完成聚类 294

16.7.1 使用Mahout 294

16.7.2 解析Mahout的输出 297

16.7.3 得到聚类结果 300

16.8 得到最终结果 301

16.9 评估聚类结果 302

16.9.1 一份不适合聚类的数据 302

16.9.2 簇间距离和簇内距离 303

16.9.3 计算平均簇间距离 303

第17章 实现调度模块 306

17.1 工作流 306

17.2 编写代码 307

17.3 crontab 308

17.4 让数据说话 308

结束篇:总结和展望 312

第18章 总结和展望 312

18.1 总结 312

18.2 YARN和CDH5 313

18.3 Apache Spark 315

18.4 NoSQL和NewSQL 316

18.4.1 NoSQL 316

18.4.2 NewSQL 317

参考文献 318

返回顶部