《Hadoop应用开发技术详解》
《Hadoop应用开发技术详解》
基本信息
作者: 刘刚
丛书名: 大数据技术丛书
出版社:机械工业出版社
ISBN:9787111452447
上架时间:2014-1-10
出版日期:2014 年1月
开本:16开
页码:1
版次:1-1
所属分类:计算机
更多关于》》》 《Hadoop应用开发技术详解》
内容简介
书籍
计算机书籍
《hadoop应用开发技术详解》由资深hadoop技术专家撰写,系统、全面、深入地讲解了hadoop开发者需要掌握的技术和知识,包括hdfs的原理和应用、hadoop文件i/o的原理和应用、mapreduce的原理和高级应用、mapreduce的编程方法和技巧,以及hive、hbase和mahout等技术和工具的使用。并且提供大量基于实际生产环境的案例,实战性非常强。
全书一共12章。第1~2章详细地介绍了hadoop的生态系统、关键技术以及安装和配置;第3章是mapreduce的使用入门,让读者了解整个开发过程;第4~5章详细讲解了分布式文件系统hdfs和hadoop的文件i/o;第6章分析了mapreduce的工作原理;第7章讲解了如何利用eclipse来编译hadoop的源代码,以及如何对hadoop应用进行测试和调试;第8~9章细致地讲解了mapreduce的开发方法和高级应用;第10~12章系统地讲解了hive、hbase和mahout。
目录
《hadoop应用开发技术详解》
前 言
第1章 hadoop概述 / 1
1.1 hadoop起源 / 1
1.1.1 google与hadoop模块 / 1
1.1.2 为什么会有hadoop / 1
1.1.3 hadoop版本介绍 / 2
1.2 hadoop生态系统 / 3
1.3 hadoop常用项目介绍 / 4
1.4 hadoop在国内的应用 / 6
1.5 本章小结 / 7
第2章 hadoop安装 / 8
2.1 hadoop环境安装配置 / 8
2.1.1 安装vmware / 8
2.1.2 安装ubuntu / 8
2.1.3 安装vmware tools / 15
2.1.4 安装jdk / 15
2.2 hadoop 安装模式 / 16
2.2.1 单机安装 / 17
2.2.2 伪分布式安装 / 18
.2.2.3 分布式安装 / 20
2.3 如何使用hadoop / 27
2.3.1 hadoop的启动与停止 / 27
2.3.2 hadoop配置文件 / 28
2.4 本章小结 / 28
第3章 mapreduce快速入门 / 30
3.1 wordcount 实例准备开发环境 / 30
3.1.1 使用eclipse创建一个java工程 / 30
3.1.2 导入hadoop的jar文件 / 31
3.2 mapreduce代码的实现 / 32
3.2.1 编写wordmapper类 / 32
3.2.2 编写wordreducer类 / 33
3.2.3 编写wordmain驱动类 / 34
3.3 打包、部署和运行 / 35
3.3.1 打包成jar文件 / 35
3.3.2 部署和运行 / 36
3.3.3 测试结果 / 38
3.4 本章小结 / 39
第4章 hadoop分布式文件系统详解 / 40
4.1 认识hdfs / 40
4.1.1 hdfs的特点 / 40
4.1.2 hadoop文件系统的接口 / 45
4.1.3 hdfs的web服务 / 46
4.2 hdfs架构 / 46
4.2.1 机架 / 47
4.2.2 数据块 / 47
4.2.3 元数据节点 / 48
4.2.4 数据节点 / 50
4.2.5 辅助元数据节点 / 50
4.2.6 名字空间 / 52
4.2.7 数据复制 / 53
4.2.8 块备份原理 / 53
4.2.9 机架感知 / 54
4.3 hadoop的rpc机制 / 55
4.3.1 rpc的实现流程 / 56
4.3.2 rpc的实体模型 / 56
4.3.3 文件的读取 / 57
4.3.4 文件的写入 / 58
4.3.5 文件的一致模型 / 59
4.4 hdfs的ha机制 / 59
4.4.1 ha集群 / 59
4.4.2 ha架构 / 60
4.4.3 为什么会有ha机制 / 61
4.5 hdfs的federation机制 / 62
4.5.1 单个namenode的hdfs架构的局限性 / 62
4.5.2 为什么引入federation机制 / 63
4.5.3 federation架构 / 64
4.5.4 多个名字空间的管理问题 / 65
4.6 hadoop文件系统的访问 / 66
4.6.1 安全模式 / 66
4.6.2 hdfs的shell访问 / 67
4.6.3 hdfs处理文件的命令 / 67
4.7 java api接口 / 72
4.7.1 hadoop url读取数据 / 73
4.7.2 filesystem类 / 73
4.7.3 filestatus类 / 75
4.7.4 fsdatainputstream类 / 77
4.7.5 fsdataoutputstream类 / 81
4.7.6 列出hdfs下所有的文件 / 83
4.7.7 文件的匹配 / 84
4.7.8 pathfilter对象 / 84
4.8 维护hdfs / 86
4.8.1 追加数据 / 86
4.8.2 并行复制 / 88
4.8.3 升级与回滚 / 88
4.8.4 添加节点 / 90
4.8.5 删除节点 / 91
4.9 hdfs权限管理 / 92
4.9.1 用户身份 / 92
4.9.2 权限管理的原理 / 93
4.9.3 设置权限的shell命令 / 93
4.9.4 超级用户 / 93
4.9.5 hdfs权限配置参数 / 94
4.10 本章小结 / 94
第5章 hadoop 文件 i/o 详解 / 95
5.1 hadoop文件的数据结构 / 95
5.1.1 sequencefile 存储 / 95
5.1.2 mapfile存储 / 99
5.1.3 sequencefile转换为mapfile / 101
5.2 hdfs数据完整性 / 103
5.2.1 校验和 / 103
5.2.2 数据块检测程序 / 104
5.3 文件序列化 / 106
5.3.1 进程间通信对序列化的要求 / 106
5.3.2 hadoop文件的序列化 / 107
5.3.3 writable接口 / 107
5.3.4 writablecomparable接口 / 108
5.3.5 自定义writable接口 / 109
5.3.6 序列化框架 / 113
5.3.7 数据序列化系统avro / 114
5.4 hadoop的writable类型 / 115
5.4.1 writable类的层次结构 / 115
5.4.2 text类型 / 116
5.4.3 nullwritable类型 / 117
5.4.4 objectwritable类型 / 117
5.4.5 genericwritable类型 / 117
5.5 文件压缩 / 117
5.5.1 hadoop支持的压缩格式 / 118
5.5.2 hadoop中的编码器和解码器 / 118
5.5.3 本地库 / 121
5.5.4 可分割压缩 lzo / 122
5.5.5 压缩文件性能比较 / 122
5.5.6 snappy压缩 / 124
5.5.7 gzip、lzo和snappy比较 / 124
5.6 本章小结 / 125
第6章 mapreduce工作原理 / 126
6.1 mapreduce的函数式编程概念 / 126
6.1.1 列表处理 / 126
6.1.2 mapping数据列表 / 127
6.1.3 reducing数据列表 / 127
6.1.4 mapper和reducer如何工作 / 128
6.1.5 应用实例:词频统计 / 129
6.2 mapreduce框架结构 / 129
6.2.1 mapreduce模型 / 130
6.2.2 mapreduce框架组成 / 130
6.3 mapreduce运行原理 / 132
6.3.1 作业的提交 / 132
6.3.2 作业初始化 / 134
6.3.3 任务的分配 / 136
6.3.4 任务的执行 / 136
6.3.5 进度和状态的更新 / 136
6.3.6 mapreduce的进度组成 / 137
6.3.7 任务完成 / 137
6.4 mapreduce容错 / 137
6.4.1 任务失败 / 138
6.4.2 tasktracker失败 / 138
6.4.3 jobtracker失败 / 138
6.4.4 子任务失败 / 138
6.4.5 任务失败反复次数的处理方法 / 139
6.5 shuffle阶段和sort阶段 / 139
6.5.1 map端的shuffle / 140
6.5.2 reduce端的shuffle / 142
6.5.3 shuffle过程参数调优 / 143
6.6 任务的执行 / 144
6.6.1 推测执行 / 144
6.6.2 任务jvm重用 / 145
6.6.3 跳过坏的记录 / 145
6.6.4 任务执行的环境 / 146
6.7 作业调度器 / 146
6.7.1 先进先出调度器 / 146
6.7.2 容量调度器 / 146
6.7.3 公平调度器 / 149
6.8 自定义hadoop调度器 / 153
6.8.1 hadoop调度器框架 / 153
6.8.2 编写hadoop调度器 / 155
6.9 yarn介绍 / 157
6.9.1 异步编程模型 / 157
6.9.2 yarn支持的计算框架 / 158
6.9.3 yarn架构 / 158
6.9.4 yarn工作流程 / 159
6.10 本章小结 / 160
第7章 eclipse插件的应用 / 161
7.1 编译hadoop源码 / 161
7.1.1 下载hadoop源码 / 161
7.1.2 准备编译环境 / 161
7.1.3 编译common组件 / 162
7.2 eclipse安装mapreduce插件 / 166
7.2.1 查找mapreduce插件 / 166
7.2.2 新建一个hadoop location / 167
7.2.3 hadoop插件操作hdfs / 168
7.2.4 运行mapreduce的驱动类 / 170
7.3 mapreduce的debug调试 / 171
7.3.1 进入debug运行模式 / 171
7.3.2 debug调试具体操作 / 172
7.4 单元测试框架mrunit / 174
7.4.1 认识mrunit框架 / 174
7.4.2 准备测试案例 / 174
7.4.3 mapper单元测试 / 176
7.4.4 reducer单元测试 / 177
7.4.5 mapreduce单元测试 / 178
7.5 本章小结 / 179
第8章 mapreduce编程开发 / 180
8.1 wordcount案例分析 / 180
8.1.1 mapreduce工作流程 / 180
8.1.2 wordcount的map过程 / 181
8.1.3 wordcount的reduce过程 / 182
8.1.4 每个过程产生的结果 / 182
8.1.5 mapper抽象类 / 184
8.1.6 reducer抽象类 / 186
8.1.7 mapreduce驱动 / 188
8.1.8 mapreduce最小驱动 / 189
8.2 输入格式 / 193
8.2.1 inputformat接口 / 193
8.2.2 inputsplit类 / 195
8.2.3 recordreader类 / 197
8.2.4 应用实例:随机生成100个小数并求最大值 / 198
8.3 输出格式 / 205
8.3.1 outputformat接口 / 205
8.3.2 recordwriter类 / 206
8.3.3 应用实例:把首字母相同的单词放到一个文件里 / 206
8.4 压缩格式 / 211
8.4.1 如何在mapreduce中使用压缩 / 211
8.4.2 map作业输出结果的压缩 / 212
8.5 mapreduce优化 / 212
8.5.1 combiner类 / 212
8.5.2 partitioner类 / 213
8.5.3 分布式缓存 / 217
8.6 辅助类 / 218
8.6.1 读取hadoop配置文件 / 218
8.6.2 设置hadoop的配置文件属性 / 219
8.6.3 genericoptionsparser选项 / 220
8.7 streaming接口 / 221
8.7.1 streaming工作原理 / 221
8.7.2 streaming编程接口参数 / 221
8.7.3 作业配置属性 / 222
8.7.4 应用实例:抓取网页的标题 / 223
8.8 本章小结 / 225
第9章 mapreduce 高级应用 / 226
9.1 计数器 / 226
9.1.1 默认计数器 / 226
9.1.2 自定义计数器 / 229
9.1.3 获取计数器 / 231
9.2 mapreduce二次排序 / 232
9.2.1 二次排序原理 / 232
9.2.2 二次排序的算法流程 / 233
9.2.3 代码实现 / 235
9.3 mapreduce中的join算法 / 240
9.3.1 reduce端join / 240
9.3.2 map端join / 242
9.3.3 半连接semi join / 244
9.4 mapreduce从mysql读写数据 / 244
9.4.1 读数据 / 245
9.4.2 写数据 / 248
9.5 hadoop系统调优 / 248
9.5.1 小文件优化 / 249
9.5.2 map和reduce个数设置 / 249
9.6 本章小结 / 250
第10章 数据仓库工具hive / 251
10.1 认识hive / 251
10.1.1 hive工作原理 / 251
10.1.2 hive数据类型 / 252
10.1.3 hive的特点 / 253
10.1.4 hive下载与安装 / 255
10.2 hive架构 / 256
10.2.1 hive用户接口 / 257
10.2.2 hive元数据库 / 259
10.2.3 hive的数据存储 / 262
10.2.4 hive解释器 / 263
10.3 hive 文件格式 / 264
10.3.1 textfile格式 / 265
10.3.2 sequencefile 格式 / 265
10.3.3 rcfile文件格式 / 265
10.3.4 自定义文件格式 / 269
10.4 hive操作 / 270
10.4.1 表操作 / 270
10.4.2 视图操作 / 278
10.4.3 索引操作 / 280
10.4.4 分区操作 / 283
10.4.5 桶操作 / 289
10.5 hive复合类型 / 290
10.5.1 struct类型 / 291
10.5.2 array类型 / 292
10.5.3 map类型 / 293
10.6 hive的join详解 / 294
10.6.1 join操作语法 / 294
10.6.2 join原理 / 294
10.6.3 外部join / 295
10.6.4 map端join / 296
10.6.5 join中处理null值的语义区别 / 296
10.7 hive 优化策略 / 297
10.7.1 列裁剪 / 297
10.7.2 map join操作 / 297
10.7.3 group by操作 / 298
10.7.4 合并小文件 / 298
10.8 hive内置操作符与函数 / 298
10.8.1 字符串函数 / 299
10.8.2 集合统计函数 / 299
10.8.3 复合类型操作 / 301
10.9 hive用户自定义函数接口 / 302
10.9.1 用户自定义函数udf / 302
10.9.2 用户自定义聚合函数udaf / 304
10.10 hive的权限控制 / 306
10.10.1 角色的创建和删除 / 307
10.10.2 角色的授权和撤销 / 307
10.10.3 超级管理员权限 / 309
10.11 应用实例:使用 jdbc开发hive 程序 / 311
10.11.1 准备测试数据 / 311
10.11.2 代码实现 / 311
10.12 本章小结 / 313
第11章 开源数据库hbase / 314
11.1 认识hbase / 314
11.1.1 hbase的特点 / 314
11.1.2 hbase访问接口 / 314
11.1.3 hbase存储结构 / 315
11.1.4 hbase存储格式 / 317
11.2 hbase设计 / 319
11.2.1 逻辑视图 / 320
11.2.2 框架结构及流程 / 321
11.2.3 table和region的关系 / 323
11.2.4 -root-表和.meta.表 / 323
11.3 关键算法和流程 / 324
11.3.1 region定位 / 324
11.3.2 读写过程 / 325
11.3.3 region分配 / 327
11.3.4 region server上线和下线 / 327
11.3.5 master上线和下线 / 327
11.4 hbase安装 / 328
11.4.1 hbase单机安装 / 328
11.4.2 hbase分布式安装 / 330
11.5 hbase的shell操作 / 334
11.5.1 一般操作 / 334
11.5.2 ddl操作 / 335
11.5.3 dml操作 / 337
11.5.4 hbase shell脚本 / 339
11.6 hbase客户端 / 340
11.6.1 java api交互 / 340
11.6.2 mapreduce操作hbase / 344
11.6.3 向hbase中写入数据 / 348
11.6.4 读取hbase中的数据 / 350
11.6.5 avro、rest和thrift接口 / 352
11.7 本章小结 / 353
第12章 mahout算法 / 354
12.1 mahout的使用 / 354
12.1.1 安装mahout / 354
12.1.2 运行一个mahout案例 / 354
12.2 mahout数据表示 / 356
12.2.1 偏好perference类 / 356
12.2.2 数据模型datamodel类 / 357
12.2.3 mahout 链接mysql数据库 / 358
12.3 认识taste框架 / 360
12.4 mahout推荐器 / 361
12.4.1 基于用户的推荐器 / 361
12.4.2 基于项目的推荐器 / 362
12.4.3 slope one 推荐策略 / 363
12.5 推荐系统 / 365
12.5.1 个性化推荐 / 365
12.5.2 商品推荐系统案例 / 366
12.6 本章小结 / 370
附录a hive内置操作符与函数 / 371
附录b hbase 默认配置解释 / 392
附录c hadoop三个配置文件的参数含义说明 / 398