Hadoop核心技术

Hadoop核心技术

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

由百度顶尖的Hadoop技术工程师撰写,是百度Hadoop技术实践经验的总结。

内容简介

这是一本技术深度与企业实践并重的著作。本书使用、实现原理、运维和开发4个方面对Hadoop的核心技术进行了深入的讲解:详细讲解了HDFS存储系统、MapReduce计算框架,以及HDFS的命令系统;结合源代码,深度分析了MapReduce、HDFS、Streaming、Pipes、Hadoop作业调度系统等重要技术和组件的架构设计、工作机制和实现原理;结合百度的实际生产环境,详细讲解了Hadoo。

作者简介

作者翟周伟,就职于百度,资深Hadoop技术专家,专注于Hadoop&大数据、数据挖掘、自然语言处理等领域。2009年便开始利用Hadoop构建商业级大数据系统,是国内该领域最早的一批人之一,负责设计过多个基于Hadoop的大数据平台和分析系统。2011年合著出版《Hadoop开源云计算平台》。在自然语言处理领域申请过一项发明专利。

章节目录

版权信息

前言

基础篇

第1章 认识Hadoop

1.1 缘于搜索的小象

1.1.1 Hadoop的身世

1.1.2 Hadoop简介

1.1.3 Hadoop发展简史

1.2 大数据、Hadoop和云计算

1.2.1 大数据

1.2.2 大数据、Hadoop和云计算的关系

1.3 设计思想与架构

1.3.1 数据存储与切分

1.3.2 MapReduce模型

1.3.3 MPI和MapReduce

1.4 国外Hadoop的应用现状

1.5 国内Hadoop的应用现状

1.6 Hadoop发行版

1.6.1 Apache Hadoop

1.6.2 Cloudera Hadoop

1.6.3 Hortonworks Hadoop发行版

1.6.4 MapR Hadoop发行版

1.6.5 IBM Hadoop发行版

1.6.6 Intel Hadoop发行版

1.6.7 华为Hadoop发行版

1.7 小结

第2章 Hadoop使用之初体验

2.1 搭建测试环境

2.1.1 软件与准备

2.1.2 安装与配置

2.1.3 启动与停止

2.2 算法分析与设计

2.2.1 Map设计

2.2.2 Reduce设计

2.3 实现接口

2.3.1 Java API实现

2.3.2 Streaming接口实现

2.3.3 Pipes接口实现

2.4 编译

2.4.1 基于Java API实现的编译

2.4.2 基于Streaming实现的编译

2.4.3 基于Pipes实现的编译

2.5 提交作业

2.5.1 基于Java API实现作业提交

2.5.2 基于Streaming实现作业提交

2.5.3 基于Pipes实现作业提交

2.6 小结

第3章 Hadoop存储系统

3.1 基本概念

3.1.1 NameNode

3.1.2 DateNode

3.1.3 客户端

3.1.4 块

3.2 HDFS的特性和目标

3.2.1 HDFS的特性

3.2.2 HDFS的目标

3.3 HDFS架构

3.3.1 Master/Slave架构

3.3.2 NameNode和Secondary NameNode通信模型

3.3.3 文件存取机制

3.4 HDFS核心设计

3.4.1 Block大小

3.4.2 数据复制

3.4.3 数据副本存放策略

3.4.4 数据组织

3.4.5 空间回收

3.4.6 通信协议

3.4.7 安全模式

3.4.8 机架感知

3.4.9 健壮性

3.4.10 负载均衡

3.4.11 升级和回滚机制

3.5 HDFS权限管理

3.5.1 用户身份

3.5.2 系统实现

3.5.3 超级用户

3.5.4 配置参数

3.6 HDFS配额管理

3.7 HDFS的缺点

3.8 小结

第4章 HDFS的使用

4.1 HDFS环境准备

4.1.1 HDFS安装配置

4.1.2 HDFS格式化与启动

4.1.3 HDFS运行检查

4.2 HDFS命令的使用

4.2.1 fs shell

4.2.2 archive

4.2.3 distcp

4.2.4 fsck

4.3 HDFS Java API的使用方法

4.3.1 Java API简介

4.3.2 读文件

4.3.3 写文件

4.3.4 删除文件或目录

4.4 C接口libhdfs

4.4.1 libhdfs介绍

4.4.2 编译与部署

4.4.3 libhdfs接口介绍

4.4.4 libhdfs使用举例

4.5 WebHDFS接口

4.5.1 WebHDFS REST API简介

4.5.2 WebHDFS配置

4.5.3 WebHDFS使用

4.5.4 WebHDFS错误响应和查询参数

4.6 小结

第5章 MapReduce计算框架

5.1 Hadoop MapReduce简介

5.2 MapReduce模型

5.2.1 MapReduce编程模型

5.2.2 MapReduce实现原理

5.3 计算流程与机制

5.3.1 作业提交和初始化

5.3.2 Mapper

5.3.3 Reducer

5.3.4 Reporter和OutputCollector

5.4 MapReduce的输入/输出格式

5.4.1 输入格式

5.4.2 输出格式

5.5 核心问题

5.5.1 Map和Reduce数量

5.5.2 作业配置

5.5.3 作业执行和环境

5.5.4 作业容错机制

5.5.5 作业调度

5.6 有用的MapReduce特性

5.6.1 计数器

5.6.2 DistributedCache

5.6.3 Tool

5.6.4 IsolationRunner

5.6.5 Profiling

5.6.6 MapReduce调试

5.6.7 数据压缩

5.6.8 优化

5.7 小结

第6章 Hadoop命令系统

6.1 Hadoop命令系统的组成

6.2 用户命令

6.3 管理员命令

6.4 测试命令

6.5 应用命令

6.6 Hadoop的streaming命令

6.6.1 streaming命令

6.6.2 参数使用分析

6.7 Hadoop的pipes命令

6.7.1 pipes命令

6.7.2 参数使用分析

6.8 小结

高级篇

第7章 MapReduce深度分析

7.1 MapReduce总结构分析

7.1.1 数据流向分析

7.1.2 处理流程分析

7.2 MapTask实现分析

7.2.1 总逻辑分析

7.2.2 Read阶段

7.2.3 Map阶段

7.2.4 Collector和Partitioner阶段

7.2.5 Spill阶段

7.2.6 Merge阶段

7.3 ReduceTask实现分析

7.3.1 总逻辑分析

7.3.2 Shuffle阶段

7.3.3 Merge阶段

7.3.4 Sort阶段

7.3.5 Reduce阶段

7.4 JobTracker分析

7.4.1 JobTracker服务分析

7.4.2 JobTracker启动分析

7.4.3 JobTracker核心子线程分析

7.5 TaskTracker分析

7.5.1 TaskTracker启动分析

7.5.2 TaskTracker核心子线程分析

7.6 心跳机制实现分析

7.6.1 心跳检测分析

7.6.2 TaskTracker.transmitHeartBeat()

7.6.3 JobTracker.heartbeat()

7.6.4 JobTracker.processHeartbeat()

7.7 作业创建分析

7.7.1 初始化分析

7.7.2 作业提交分析

7.8 作业执行分析

7.8.1 JobTracker初始化

7.8.2 TaskTracker.startNewTask()

7.8.3 TaskTracker.localizeJob()

7.8.4 TaskRunner.run()

7.8.5 MapTask.run()

7.9 小结

第8章 Hadoop Streaming和Pipes原理与实现

8.1 Streaming原理浅析

8.2 Streaming实现架构

8.3 Streaming核心实现机制

8.3.1 主控框架实现

8.3.2 用户进程管理

8.3.3 框架和用户程序的交互

8.3.4 PipeMapper和PiperReducer

8.4 Pipes原理浅析

8.5 Pipes实现架构

8.6 Pipes核心实现机制

8.6.1 主控类实现

8.6.2 用户进程管理

8.6.3 PipesMapRunner

8.6.4 PipesReducer

8.6.5 C++端HadoopPipes

8.7 小结

第9章 Hadoop作业调度系统

9.1 作业调度概述

9.1.1 相关概念

9.1.2 作业调度流程

9.1.3 集群资源组织与管理

9.1.4 队列控制和权限管理

9.1.5 插件式调度框架

9.2 FIFO调度器

9.2.1 基本调度策略

9.2.2 FIFO实现分析

9.2.3 FIFO初始化与停止

9.2.4 作业监听控制

9.2.5 任务分配算法

9.2.6 配置与使用

9.3 公平调度器

9.3.1 产生背景

9.3.2 主要功能

9.3.3 基本调度策略

9.3.4 FairScheduler实现分析

9.3.5 FairScheduler启停分析

9.3.6 作业监听控制

9.3.7 资源池管理

9.3.8 作业更新策略

9.3.9 作业权重和资源量的计算

9.3.10 任务分配算法

9.3.11 FairScheduler配置参数

9.3.12 使用与管理

9.4 容量调度器

9.4.1 产生背景

9.4.2 主要功能

9.4.3 基本调度策略

9.4.4 CapacityScheduler实现分析

9.4.5 CapacityScheduler启停分析

9.4.6 作业监听控制

9.4.7 作业初始化分析

9.4.8 任务分配算法

9.4.9 内存匹配机制

9.4.10 配置与使用

9.5 调度器对比分析

9.5.1 调度策略对比

9.5.2 队列和优先级

9.5.3 资源分配保证

9.5.4 作业限制

9.5.5 配置管理

9.5.6 扩展性支持

9.5.7 资源抢占和延迟调度

9.5.8 优缺点分析

9.6 其他调度器

9.6.1 HOD调度器

9.6.2 LATE调度器

9.7 小结

实战篇

第10章 Hadoop集群搭建

10.1 Hadoop版本的选择

10.2 集群基础硬件需求

10.2.1 内存

10.2.2 CPU

10.2.3 磁盘

10.2.4 网卡

10.2.5 网络拓扑

10.3 集群基础软件需求

10.3.1 操作系统

10.3.2 JVM和SSH

10.4 虚拟化需求

10.5 事前准备

10.5.1 创建安装用户

10.5.2 安装Java

10.5.3 安装SSH并设置

10.5.4 防火墙端口设置

10.6 安装Hadoop

10.6.1 安装HDFS

10.6.2 安装MapReduce

10.7 集群配置

10.7.1 配置管理

10.7.2 环境变量配置

10.7.3 核心参数配置

10.7.4 HDFS参数配置

10.7.5 MapReduce参数配置

10.7.6 masters和slaves配置

10.7.7 客户端配置

10.8 启动和停止

10.8.1 启动/停止HDFS

10.8.2 启动/停止MapReduce

10.8.3 启动验证

10.9 集群基准测试

10.9.1 HDFS基准测试

10.9.2 MapReduce基准测试

10.9.3 综合性能测试

10.10 集群搭建实例

10.10.1 部署策略

10.10.2 软件和硬件环境

10.10.3 Hadoop安装

10.10.4 配置core-site.xml

10.10.5 配置hdfs-site.xml

10.10.6 配置mapred-site.xml

10.10.7 SecondaryNameNode和Slave

10.10.8 配置作业队列

10.10.9 配置第三方调度器

10.10.10 启动与验证

10.11 小结

第11章 Hadoop Streaming和Pipes编程实战

11.1 Streaming基础编程

11.1.1 Streaming编程入门

11.1.2 Map和Reduce数目

11.1.3 队列、优先级及权限

11.1.4 分发文件和压缩包

11.1.5 压缩参数的使用

11.1.6 本地作业的调试

11.2 Streaming高级应用

11.2.1 参数与环境变量传递

11.2.2 自定义分隔符

11.2.3 自定义Partitioner

11.2.4 自定义计数器

11.2.5 处理二进制数据

11.2.6 使用聚合函数

11.3 Pipes编程接口

11.3.1 TaskContext

11.3.2 Mapper

11.3.3 Reducer

11.3.4 Partitioner

11.3.5 RecordReader

11.3.6 RecordWriter

11.4 Pipes编程应用

11.5 小结

第12章 Hadoop MapReduce应用开发

12.1 开发环境准备

12.2 Eclipse集成环境开发

12.2.1 构建MapReduce Eclipse IDE

12.2.2 开发示例

12.3 MapReduce Java API编程

12.3.1 Mapper编程接口

12.3.2 Reducer编程接口

12.3.3 驱动类编写

12.3.4 编译运行

12.4 压缩功能使用

12.4.1 Hadoop数据压缩

12.4.2 压缩特征与性能

12.4.3 本地压缩库

12.4.4 使用压缩

12.5 排序应用

12.5.1 Hadoop排序问题

12.5.2 二次排序

12.5.3 比较器和组合排序

12.5.4 全局排序

12.6 多路输出

12.7 常见问题与处理方法

12.7.1 常见的开发问题

12.7.2 运行时错误问题

12.8 小结

Hadoop核心技术是2015年由机械工业出版社华章分社出版,作者翟周伟。

得书感谢您对《Hadoop核心技术》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Hadoop大数据开发基础 电子书
本书以任务为导向,较为全面地介绍了Hadoop大数据技术的相关知识。全书共6章,具体内容包括Hadoop介绍、Hadoop集群的搭建及配置、Hadoop基础操作、MapReduce编程入门、MapReduce进阶编程、项目案例:电影网站用户性别预测。本书的第2~5章包含了实训与课后练习,通过练习和操作实践,帮助读者巩固所学的内容。本书可以作为高校大数据技术类专业的教材,也可作为大数据技术爱好者的自
Hadoop+Spark大数据技术 电子书
本书介绍Hadoop、Spark两种大数据处理框架,共12章,内容包括:Hadoop大数据开发环境、HDFS大数据分布式存储、MapReduce分布式计算框架、HBase分布式数据库、Scala基础编程、Spark大数据处理框架、Windows环境下Spark综合编程等。
Hadoop集群程序设计与开发 电子书
带你了解大数据计算平台Hadoop设计与开发的必备知识。
Python核心技术实战详解 电子书
1.内容讲解深入。 本书对Python的核心知识进行了深入剖析,循序渐进地讲解了核心功能模块的开发技术,帮助读者快速步入Python开发高手之列。 2.提供更为广泛的解决方案。 本书深入讲解了10个不同的主题模块,每一个主题涵盖了特定应用开发领域。在书中不仅给出了案例讲解,还包含了更多的拓展知识,能够帮助读者使用Python 开发各种类型的应用程序。 3.通过网站论坛形成互帮互学的朋友圈。 为了方便给读者答疑,特提供了网站论坛等支持,并且随时在线与读者互动,让大家在互学互帮中形成一个良好的学习编程的氛围。
化妆造型核心技术修炼 电子书
这是一本非常实用的化妆造型书,主要讲解化妆造型的核心知识和实际应用。《化妆造型核心技术修炼》首先从化妆造型的职业简介开始讲解,让读者明白化妆造型是什么,化妆造型的前景如何,以及为什么要学习化妆造型;然后以化妆造型的核心知识为主导,深入地讲解了底妆、眉妆、眼妆、腮红和唇妆五大化妆核心,让读者能够对化妆的知识进行全面系统的学习;接着编排了实际的化妆造型应用案例,让读者能够零距离地接触化妆造型的整个工作