📚 《Hadoop 应用开发技术详解》纸质实体书免费送啦!

本贴最后更新于 2859 天前,其中的信息可能已经时移世易

** 有需要该书的朋友请回帖沟通寄送方式,谢谢!**

Hadoop 应用开发技术详解

Hadoop 应用开发技术详解 Hadoop 应用开发技术详解

作者

  • 刘刚

内容简介

《大数据技术丛书:Hadoop 应用开发技术详解》共 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。

目录

前言
第 1 章 Hadoop 概述
1.1 Hadoop 起源
1.1.1 Google 与 Hadoop 模块
1.1.2 为什么会有 Hadoop
1.1.3 Hadoop 版本介绍
1.2 Hadoop 生态系统
1.3 Hadoop 常用项目介绍
1.4 Hadoop 在国内的应用
1.5 本章小结
第 2 章 Hadoop 安装
2.1 Hadoop 环境安装配置
2.1.1 安装 VMware
2.1.2 安装 Ubuntu
2.1.3 安装 VMwareTools
2.1.4 安装 JDK
2.2 Hadoop 安装模式
2.2.1 单机安装
2.2.2 伪分布式安装
2.2.3 分布式安装
2.3 如何使用 Hadoop
2.3.1 Hadoop 的启动与停止
2.3.2 Hadoop 配置文件
2.4 本章小结
第 3 章 MapReduce 快速入门
3.1 WordCount 实例准备开发环境
3.1.1 使用 Eclipse 创建一个 Java 工程
3.1.2 导入 Hadoop 的 JAR 文件
3.2 MapReduce 代码的实现
3.2.1 编写 WordMapper 类
3.2.2 编写 WordReducer 类
3.2.3 编写 WordMain 驱动类
3.3 打包、部署和运行
3.3.1 打包成 JAR 文件
3.3.2 部署和运行
3.3.3 测试结果
3.4 本章小结
第 4 章 Hadoop 分布式文件系统详解
4.1 认识 HDFS
4.1.1 HDFS 的特点
4.1.2 Hadoop 文件系统的接口
4.1.3 HDFS 的 Web 服务
4.2 HDFS 架构
4.2.1 机架
4.2.2 数据块
4.2.3 元数据节点
4.2.4 数据节点
4.2.5 辅助元数据节点
4.2.6 名字空间
4.2.7 数据复制
4.2.8 块备份原理
4.2.9 机架感知
4.3 Hadoop 的 RPC 机制
4.3.1 RPC 的实现流程
4.3.2 RPC 的实体模型
4.3.3 文件的读取
4.3.4 文件的写入
4.3.5 文件的一致模型
4.4 HDFS 的 HA 机制
4.4.1 HA 集群
4.4.2 HA 架构
4.4.3 为什么会有 HA 机制
4.5 HDFS 的 Federation 机制
4.5.1 单个 NameNode 的 HDFS 架构的局限性
4.5.2 为什么引入 Federation 机制
4.5.3 Federation 架构
4.5.4 多个名字空间的管理问题
4.6 Hadoop 文件系统的访问
4.6.1 安全模式
4.6.2 HDFS 的 Shell 访问
4.6.3 HDFS 处理文件的命令
4.7 JavaAPI 接口
4.7.1 HadoopURL 读取数据
4.7.2 FileSystem 类
4.7.3 FileStatus 类
4.7.4 FSDataInputStream 类
4.7.5 FSDataOutputStream 类
4.7.6 列出 HDFS 下所有的文件
4.7.7 文件的匹配
4.7.8 PathFilter 对象
4.8 维护 HDFS
4.8.1 追加数据
4.8.2 并行复制
4.8.3 升级与回滚
4.8.4 添加节点
4.8.5 删除节点
4.9 HDFS 权限管理
4.9.1 用户身份
4.9.2 权限管理的原理
4.9.3 设置权限的 Shell 命令
4.9.4 超级用户
4.9.5 HDFS 权限配置参数
4.10 本章小结
第 5 章 Hadoop 文件 I/O 详解
5.1 Hadoop 文件的数据结构
5.1.1 SequenceFile 存储
5.1.2 MapFile 存储
5.1.3 SequenceFile 转换为 MapFile
5.2 HDFS 数据完整性
5.2.1 校验和
5.2.2 数据块检测程序
5.3 文件序列化
5.3.1 进程间通信对序列化的要求
5.3.2 Hadoop 文件的序列化
5.3.3 Writable 接口
5.3.4 WritableComparable 接口
5.3.5 自定义 Writable 接口
5.3.6 序列化框架
5.3.7 数据序列化系统 Avro
5.4 Hadoop 的 Writable 类型
5.4.1 Writable 类的层次结构
5.4.2 Text 类型
5.4.3 NullWritable 类型
5.4.4 ObjectWritable 类型
5.4.5 GenericWritable 类型
5.5 文件压缩
5.5.1 Hadoop 支持的压缩格式
5.5.2 Hadoop 中的编码器和解码器
5.5.3 本地库
5.5.4 可分割压缩 LZO
5.5.5 压缩文件性能比较
5.5.6 Snappy 压缩
5.5.7 gzip、LZO 和 Snappy 比较
5.6 本章小结
第 6 章 MapReduce 工作原理
6.1 MapReduce 的函数式编程概念
6.1.1 列表处理
6.1.2 Mapping 数据列表
6.1.3 Reducing 数据列表
6.1.4 Mapper 和 Reducer 如何工作
6.1.5 应用实例:词频统计
6.2 MapReduce 框架结构
6.2.1 MapReduce 模型
6.2.2 MapReduce 框架组成
6.3 MapReduce 运行原理
6.3.1 作业的提交
6.3.2 作业初始化
6.3.3 任务的分配
6.3.4 任务的执行
6.3.5 进度和状态的更新
6.3.6 MapReduce 的进度组成
6.3.7 任务完成
6.4 MapReduce 容错
6.4.1 任务失败
6.4.2 TaskTracker 失败
6.4.3 JobTracker 失败
6.4.4 子任务失败
6.4.5 任务失败反复次数的处理方法
6.5 Shuffle 阶段和 Sort 阶段
6.5.1 Map 端的 Shuffle
6.5.2 Reduce 端的 Shuffle
6.5.3 Shuffle 过程参数调优
6.6 任务的执行
6.6.1 推测执行
6.6.2 任务 JVM 重用
6.6.3 跳过坏的记录
6.6.4 任务执行的环境
6.7 作业调度器
6.7.1 先进先出调度器
6.7.2 容量调度器
6.7.3 公平调度器
6.8 自定义 Hadoop 调度器
6.8.1 Hadoop 调度器框架
6.8.2 编写 Hadoop 调度器
6.9 YARN 介绍
6.9.1 异步编程模型
6.9.2 YARN 支持的计算框架
6.9.3 YARN 架构
6.9.4 YARN 工作流程
6.10 本章小结
第 7 章 Eclipse 插件的应用
7.1 编译 Hadoop 源码
7.1.1 下载 Hadoop 源码
7.1.2 准备编译环境
7.1.3 编译 common 组件
7.2 Eclipse 安装 MapReduce 插件
7.2.1 查找 MapReduce 插件
7.2.2 新建一个 Hadooplocation
7.2.3 Hadoop 插件操作 HDFS
7.2.4 运行 MapReduce 的驱动类
7.3 MapReduce 的 Debug 调试
7.3.1 进入 Debug 运行模式
7.3.2 Debug 调试具体操作
7.4 单元测试框架 MRUnit
7.4.1 认识 MRUnit 框架
7.4.2 准备测试案例
7.4.3 Mapper 单元测试
7.4.4 Reducer 单元测试
7.4.5 MapReduce 单元测试
7.5 本章小结
第 8 章 MapReduce 编程开发
8.1 WordCount 案例分析
8.1.1 MapReduce 工作流程
8.1.2 WordCount 的 Map 过程
8.1.3 WordCount 的 Reduce 过程
8.1.4 每个过程产生的结果
8.1.5 Mapper 抽象类
8.1.6 Reducer 抽象类
8.1.7 MapReduce 驱动
8.1.8 MapReduce 最小驱动
8.2 输入格式
8.2.1 InputFormat 接口
8.2.2 InputSplit 类
8.2.3 RecordReader 类
8.2.4 应用实例:随机生成 100 个小数并求最大值
8.3 输出格式
8.3.1 OutputFormat 接口
8.3.2 RecordWriter 类
8.3.3 应用实例:把首字母相同的单词放到一个文件里
8.4 压缩格式
8.4.1 如何在 MapReduce 中使用压缩
8.4.2 Map 作业输出结果的压缩
8.5 MapReduce 优化
8.5.1 Combiner 类
8.5.2 Partitioner 类
8.5.3 分布式缓存
8.6 辅助类
8.6.1 读取 Hadoop 配置文件
8.6.2 设置 Hadoop 的配置文件属性
8.6.3 GenericOptionsParser 选项
8.7 Streaming 接口
8.7.1 Streaming 工作原理
8.7.2 Streaming 编程接口参数
8.7.3 作业配置属性
8.7.4 应用实例:抓取网页的标题
8.8 本章小结
第 9 章 MapReduce 高级应用
9.1 计数器
9.1.1 默认计数器
9.1.2 自定义计数器
9.1.3 获取计数器
9.2 MapReduce 二次排序
9.2.1 二次排序原理
9.2.2 二次排序的算法流程
9.2.3 代码实现
9.3 MapReduce 中的 Join 算法
9.3.1 Reduce 端 Join
9.3.2 Map 端 Join
9.3.3 半连接 SemiJoin
9.4 MapReduce 从 MySQL 读写数据
9.4.1 读数据
9.4.2 写数据
9.5 Hadoop 系统调优
9.5.1 小文件优化
9.5.2 Map 和 Reduce 个数设置
9.6 本章小结
第 10 章 数据仓库工具 Hive
10.1 认识 Hive
10.1.1 Hive 工作原理
10.1.2 Hive 数据类型
10.1.3 Hive 的特点
10.1.4 Hive 下载与安装
10.2 Hive 架构
10.2.1 Hive 用户接口
10.2.2 Hive 元数据库
10.2.3 Hive 的数据存储
10.2.4 Hive 解释器
10.3 Hive 文件格式
10.3.1 TextFile 格式
10.3.2 SequenceFile 格式
10.3.3 RCFile 文件格式
10.3.4 自定义文件格式
10.4 Hive 操作
10.4.1 表操作
10.4.2 视图操作
10.4.3 索引操作
10.4.4 分区操作
10.4.5 桶操作
10.5 Hive 复合类型
10.5.1 Struct 类型
10.5.2 Array 类型
10.5.3 Map 类型
10.6 Hive 的 JOIN 详解
10.6.1 JOIN 操作语法
10.6.2 JOIN 原理
10.6.3 外部 JOIN
10.6.4 Map 端 JOIN
10.6.5 JOIN 中处理 NULL 值的语义区别
10.7 Hive 优化策略
10.7.1 列裁剪
10.7.2 MapJoin 操作
10.7.3 GroupBy 操作
10.7.4 合并小文件
10.8 Hive 内置操作符与函数
10.8.1 字符串函数
10.8.2 集合统计函数
10.8.3 复合类型操作
10.9 Hive 用户自定义函数接口
10.9.1 用户自定义函数 UDF
10.9.2 用户自定义聚合函数 UDAF
10.10 Hive 的权限控制
10.10.1 角色的创建和删除
10.10.2 角色的授权和撤销
10.10.3 超级管理员权限
10.11 应用实例:使用 JDBC 开发 Hive 程序
10.11.1 准备测试数据
10.11.2 代码实现
10.12 本章小结
第 11 章 开源数据库 HBase
11.1 认识 HBase
11.1.1 HBase 的特点
11.1.2 HBase 访问接口
11.1.3 HBase 存储结构
11.1.4 HBase 存储格式
11.2 HBase 设计
11.2.1 逻辑视图
11.2.2 框架结构及流程
11.2.3 Table 和 Region 的关系
11.2.4 -ROOT-表和.META.表
11.3 关键算法和流程
11.3.1 Region 定位
11.3.2 读写过程
11.3.3 Region 分配
11.3.4 RegionServer 上线和下线
11.3.5 Master 上线和下线
11.4 HBase 安装
11.4.1 HBase 单机安装
11.4.2 HBase 分布式安装
11.5 HBase 的 Shell 操作
11.5.1 一般操作
11.5.2 DDL 操作
11.5.3 DML 操作
11.5.4 HBaseShell 脚本
11.6 HBase 客户端
11.6.1 JavaAPI 交互
11.6.2 MapReduce 操作 HBase
11.6.3 向 HBase 中写入数据
11.6.4 读取 HBase 中的数据
11.6.5 Avro、REST 和 Thrift 接口
11.7 本章小结
第 12 章 Mahout 算法
12.1 Mahout 的使用
12.1.1 安装 Mahout
12.1.2 运行一个 Mahout 案例
12.2 Mahout 数据表示
12.2.1 偏好 Perference 类
12.2.2 数据模型 DataModel 类
12.2.3 Mahout 链接 MySQL 数据库
12.3 认识 Taste 框架
12.4 Mahout 推荐器
12.4.1 基于用户的推荐器
12.4.2 基于项目的推荐器
12.4.3 SlopeOne 推荐策略
12.5 推荐系统
12.5.1 个性化推荐
12.5.2 商品推荐系统案例
12.6 本章小结
附录 A Hive 内置操作符与函数
附录 B HBase 默认配置解释[1]
附录 C Hadoop 三个配置文件的参数含义说明

其他

  • 出版社:机械工业出版社
  • 丛 书:大数据技术丛书
  • 副标题:
  • 原作名:
  • 出版年:2014-1-1
  • 总页数:408
  • 定 价:79.00 元
  • 装 帧:平装
  • ISBN:9787111452447

关于『书单』

书单是黑客派社区的一个纸质书共享活动,所有书均来自捐赠,原则上当前的书籍持有者有义务将书寄送给需要的会员。我们鼓励你在书籍上留下笔迹,任何信息都行,让其他人可以看到一些有意思的内容也是蛮不错的 😅

共享意味着什么

一旦你共享了一本书,就会使用你的社区账号自动发一篇书籍共享帖,这意味着你做了一个承诺:将书送到需要的人手中。如果有同城的书籍需求者回帖,就面交吧!

如何参与

  1. 使用微信扫描如下二维码,进入黑客派社区小程序
    3c04bd33b54a493aa97107a94a1ae706.png
  2. 按照小程序的指引开始即可

一点思考

类似共享书籍的事情有很多人做过,比如:

  • 摆摆书架
  • 青番茄
  • 书巢
  • 丢书大作战
  • 很多社区的书籍交换

大家的出发点都是想让这个世界变得更好。黑客派的『书单』将作为长期活动持续下去,大家随时都能参与进来,让你我的生活变得更丰富有趣!

  • 书单

    『书单』是 [黑客派] 社区的纸质书共享计划第一版,目前已经下线。其升级版『链书』基于区块链的技术,实现去中心化的货币 + 去中心化的图书馆,已于 2018 年 6 上线。

    77 引用 • 638 回帖 • 493 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 627 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 344 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
请输入回帖内容 ...