《Hadoop应用开发技术详解》

时间:2022-09-13 22:00:21

Hadoop应用开发技术详解》

基本信息

作者: 刘刚

丛书名: 大数据技术丛书

出版社:机械工业出版社

ISBN:9787111452447

上架时间:2014-1-10

出版日期:2014 年1月

开本:16开

页码:1

版次:1-1

所属分类:计算机

《Hadoop应用开发技术详解》

更多关于》》》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

本图书信息来源:互动出版

《Hadoop应用开发技术详解》的更多相关文章

  1. hadoop应用开发技术详解

    <大 数据技术丛书:Hadoop应用开发技术详解>共12章.第1-2章详细地介绍了Hadoop的生态系统.关键技术以及安装和配置:第3章是 MapReduce的使用入门,让读者了解整个开发 ...

  2. Python开发技术详解(视频&plus;源码&plus;文档)

    Python, 是一种面向对象.直译式计算机程序设计语言.Python语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结 ...

  3. Python开发技术详解PDF

    Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ...

  4. Windows驱动——读书笔记《Windows驱动开发技术详解》

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  5. 《Tomcat与Java Web开发技术详解》思维导图

    越想构建上层建筑,就越觉得底层基础很重要.补课系列. 书是良心书,就是太基础了,正适合补课. [纯文字版] Tomcat与Java Web开发技术详解 Servlet Servlet的生命周期 初始化 ...

  6. 《python开发技术详解》&vert;百度网盘免费下载&vert;Python开发入门篇

    <python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...

  7. 《Android底层接口与驱动开发技术详解》digest

    第一章:IDE:Eclipse ADT for java developer其它: Apache Ant Java SE Development Kit5或6 Linux和Mac上使用Apache A ...

  8. PHP&plus;MySQL开发技术详解—学习笔记

    1.      PHP is Hypertext Preproocessor. 2.      Hello World: <?php Echo ‘Hello World!’; ?> 3.  ...

  9. 《TomCat与Java Web开发技术详解》(第二版) 第八章节的学习总结 -- 访问mysql

    终于学到如何访问Mysql了 1. 可以看看此章节提供的sql脚本,以后可以照着写了.此外,对于Mysql如何使用,最好的地方就是其官网介绍了.http://dev.mysql.com/doc/ref ...

随机推荐

  1. 自动化测试工具QTP的使用实例 分类: 软件测试 2015-06-17 00&colon;23 185人阅读 评论&lpar;0&rpar; 收藏

    1. QTP简介 1.1QTP功能与特点 QTP是QuickTest Professional的简称,是一种自动化软件测试工具.在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试 ...

  2. Python 操作 MySQL 之 pysql 与 ORM&lpar;转载&rpar;

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  3. &lbrack;No000034&rsqb;知乎-长期接收碎片化知识有什么弊端?

    你所接受的一切信息,构成了你的思维方式. 所以,长期接受碎片信息的后果,就是让你的思维变得狭隘,难以进行复杂的思考. 碎片信息通常具备这样的特征: •它们往往是一些事实的集合而非逻辑 •它们往往大量简 ...

  4. KMP算法模板

    不懂的话推荐看这篇博客,讲的很清楚 http://blog.csdn.net/v_july_v/article/details/7041827 #include<iostream> #in ...

  5. Symfony VarDumper Component

    Symfony VarDumper 类似 php var_dump() 官方文档写的安装方法 : 按照步骤 就可以在 running any PHP code  时候使用了 In order to h ...

  6. RSA JS 加密解密DEMO

    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script&g ...

  7. TypeScript笔记 4--变量声明

    在上一篇:基础变量中我们在声明变量时使用了关键字let,这和JS中的var有点类似. 语法 基本语法:let 变量名:类型.当然类型不是必须的. let x:number; let y:string ...

  8. netsh winsock reset命令

    公司一台电脑无法浏览网页,其他基本正常,鼓捣了一个多小时,依然无法解决.. 一开始按照正常思路,感觉是dns的问题,查看了下DNS,真是自定义的,于是改成自动获取,无效 重启了网卡,无效 重启电脑,无 ...

  9. Docker-堆栈stack(6)

    堆栈(Stack)的概念: 堆栈是一组相互关联的服务,它们共享依赖关系,并且可以协调和缩放在一起.单个堆栈能够定义和协调整个应用程序的功能,但是非常复杂的应用程序可能希望使用多个堆栈. 下面我们就开始 ...

  10. selenium python3

    安装pip3 install selenium 查看版本pip3 show selenium 安装后还是提示找不到相应的模块 Mac安装PyCharm后,将已有工程导入,之前使用Mac终端执行脚本时正 ...