Hadoop实战

Hadoop实战

媒体评论

  将网格计算、并行计算和虚拟化等技术融为一体的云计算技术已成为我们当下存储和处理海量数据的最佳选择之一。Hadoop的开源、高性能、高容错、跨平台等特点又使其成为架构云计算平台的首选。本书以实践为主,理论与实践相结合,全面阐述了整个Hadoop技术体系,适合读者系统地学习。强烈推荐!——Hadoop中文网
  
  目前,国内的很多互联网企业都在使用或正准备使用Hadoop技术,这些企业都面临着一个共同的难题:Hadoop方面的人才难求。Hadoop方面的人才之所以难找,一方面是因为Hadoop在国内应用的时间不长,从业人员并不多;另一方面是因为Hadoop技术本身较难以掌握,而且与涉及海量数据处理的实际生产环境密切相关。本书很好地把握住了当前Hadoop从业者的核心需求,不仅理论知识全面,更重要的是包含大量与实际生产环境相结合的案例,极具指导意义。——Hadoop用户社区
  
  Hadoop可谓炙手可热,在全球范围内,已经有数量庞大的大中型互联网公司开始使用Hadoop,国外的Amazon、Facebook、Yahoo!,国内的腾讯、百度、淘宝、阿里巴巴等都是成功应用Hadoop的典范。然而,Hadoop技术本身却极为复杂,而且涉及众多其他的技术,学习门槛比较高。本书从中初级读者的需求出发,以实践为导向,全面而系统地讲解了Hadoop技术本身,以及与之相关的其他各种技术。对于想系统学习Hadoop和想增加实战经验的读者来说,本书不可多得!——51CTO
 

作译者

  陆嘉恒,中国人民大学副教授,新加坡国立大学博士,美国加利福尼亚大学尔湾分校(University of California, Irvine) 博士后。专注于云计算及其相关技术的研究,对Hadoop有较深入的研究,积累了丰富的实践经验。对分布式计算和海量数据处理有深刻的认识,主持并完成了多个国家863和自然科学基金项目的研究与实施。2009年入选新世纪优秀人才,2010年入选北京科技新星。主持《云计算概论》课程获教育部-IBM精品课程称号。
 

内容简介



  本书是一本系统且极具实践指导意义的hadoop工具书和参考书。内容全面,对hadoop整个技术体系进行了全面的讲解,不仅包括hdfs和mapreduce这两大核心内容,而且还包括hive、hbase、mahout、pig、zookeeper、avro、chukwa等与hadoop相关的子项目的内容。实战性强,为各个知识点精心设计了大量经典的小案例,易于理解,可操作性强。
  全书一共18章:第1章全面介绍了hadoop的概念、优势、项目结构、体系结构,以及它与分布式计算的关系;第2章详细讲解了hadoop集群的安装和配置,以及常用的日志分析技巧;第3章分析了hadoop在yahoo!、ebay、facebook和百度的应用案例,以及hadoop平台上海量数据的排序;第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了hadoop的i/o操作、hdfs的原理与基本操作,以及hadoop的各种管理操作,如集群的维护等;第12-17章详细而系统地讲解了hive、hbase、mahout、pig、zookeeper、avro、chukwa等所有与hadoop相关的子项目的原理及使用,以及这些子项目与hadoop的整合使用;第18章以实例的方式讲解了常用hadoop插件的使用和hadoop插件的开发。
  本书既适合没有hadoop基础的初学者系统地学习,又适合有一定hadoop基础但是缺乏实践经验的读者实践和参考。

前言

  为什么写这本书
  计算技术已经深刻地影响了我们的工作、学习和生活。分布式的云计算技术是当下IT领域最炙手可热的话题,其发展速度非常迅速,潜力巨大,悄然改变着整个行业的面貌。云计算技术通过整合资源的方式,为降低成本和能耗提供了一种简化的、集中的计算平台。作为一种新兴的技术,它将为IT产业带来深刻的变革,相信人类会因此迎来一个新的信息化时代!
  在学术界,政府和很多高校都十分重视对分布式的云计算技术的研究和投入;在产业界,各大IT公司也在投入大量的资源研究和开发相关的云计算产品,与之相关的新兴技术和产品正在不断涌现,传统的信息服务产品也在向云计算模式转型。这一切都极大地推进了云计算技术的发展。
  Hadoop是Apache基金会的开源项目,为开发者提供了一个分布式系统的基础架构,用户可以在不了解分布式系统的底层细节的情况下开发分布式的应用,充分利用集群的强大功能,实现高速运算和存储。Hadoop项目中包括一个分布式的文件系统HDFS项目,一个分布式的并行编程框架MapReduce,以及包括Nutch在内的诸多子项目。目前,Hadoop开源项目已经得到了Yahoo!、Facebook、中国移动、阿里巴巴、百度、腾讯等国内外大型互联网企业的关注,并且已经被投入到了实际的产业应用中。在诸多的云计算技术中,Hadoop具有无与伦比的优势,越来越多的公司和组织选择使用Hadoop开源项目作为他们的解决方案。
  Hadoop技术本身较为复杂,而且涉及具体的应用场景时会变得更为复杂,很多人在学习的初级阶段需要进行大量的摸索和实践,然而目前这方面系统的参考资料却非常少。为了便于所有想了解和掌握Hadoop技术的朋友学习并在学习中少走弯路,笔者将自己在该领域的经验和积累凝聚成了这本书,希望能推动Hadoop及其相关技术在国内的发展。
  本书面向的读者
  在编写本书时,我们力图使不同背景和职业的读者都能从这本书中获益。
  如果你是专业技术人员,本书将带领你快速地进入云计算的世界,全面掌握Hadoop及其相关技术,能帮助你使用Hadoop技术解决当前面临的问题。
  如果你是高等院校计算机及相关专业的学生,本书为你在课堂之外了解最新的IT技术打开了一扇窗户,能帮助你拓宽视野,完善知识结构,为迎接未来的挑战做好知识储备。
  在学习本书之前,大家应该具有如下的基础:
  ·具有一定的分布式系统的基础知识,对文件系统的基本操作有一定的了解。
  ·有一定的Linux操作系统的基础知识。
  ·有较好的编程基础和阅读代码的能力,尤其是要能够熟练使用Java语言。
  ·对数据仓库、系统监控、网络爬虫等知识最好也能有一些了解。
  如何阅读本书
  本书一共18章和一个附录。前10章主要介绍了Apache Hadoop的common核心、MapReduce及文件系统。从第11章开始,详细讲解了与Hadoop相关的其他项目,分别为:Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa,以及Hadoop的常用插件。此外,附录中还包含一个简单的云计算在线检测平台。
  在阅读本书时,大家可以先系统地学习前10章的知识,目的是对Hadoop的核心内容有一个很好的理解。在此基础上,大家可以对后面的章节进行选择性的学习。这是因为在内容的编排上,各章的知识点是相对独立的,各章之间是并行的关系。当然,如果时间允许,还是建议大家系统地学习全书的内容,这样能够对Hadoop系统的机制有一个完整的理解,为今后深入地研究和实践Hadoop及云计算技术打下坚实的基础。
  另外,我们希望大家在学习本书时能一边阅读,一边根据书中的指导动手实践,亲自实践本书中所给出的编程范例。例如,先搭建一个自己的云平台,如果条件受限,可以选择伪分布的方式。
  致谢
  在本书的编写过程中,还有很多Hadoop领域的实践者和研究者为本书做了大量的工作,他们是冯博亮、程明、徐文韬、张林林、朱俊良、许翔、陈东伟、谭果、林春彬等,在此特别表示感谢。
.  在线资源及勘误
  在本书的附录中,我们提供了一个基于Hadoop的云计算在线测试平台(http://cloudcomputing.ruc.edu.cn),大家可以先注册一个免费账户,然后立即体验Hadoop平台,在线编写MapReduce应用并进行自动验证。如果大家希望获得该平台的验证码,或获得完全编程测试和理论测试的权限,请发邮件到jiahenglu@gmail.com索取密码。
  本书官方网站地址:http://datasearch.ruc.edu.cn/HadoopInAction/,本书的勘误、讨论以及相关资料等都会在该网站上发布和更新。
  在本书的撰写和相关技术的研究中,尽管笔者投入了大量的精力、付出了艰辛的努力,然而受知识水平所限,错误和疏漏之处在所难免,恳请大家批评指正。如果有任何问题和建议,可发送邮件至jiahenglu@gmail.com或jiahenglu@ruc.edu.cn。
  陆嘉恒
  2011年6月于北京

目录

《hadoop实战》
前 言
第1章 hadoop 简介/1
1.1 什么是hadoop/2
1.1.1 hadoop 概述/2
1.1.2 hadoop 的历史/2
1.1.3 hadoop 的功能与作用/2
1.1.4 hadoop 的优势/3
1.1.5 hadoop 的应用现状和发展趋势/3
1.2 hadoop 项目及其结构/3
1.3 hadoop 的体系结构/6
1.3.1 hdfs 的体系结构/6
1.3.2 mapreduce 的体系结构/7
1.4 hadoop 与分布式开发/7
1.5 hadoop 计算模型—mapreduce/10
1.6 hadoop 的数据管理/10
1.6.1 hdfs 的数据管理/11
1.6.2 hbase 的数据管理/12
1.6.3 hive 的数据管理/15
1.7 小结/17
.第2章 hadoop 的安装与配置 /18
2.1 在linux 上安装与配置hadoop/19
2.1.1 安装jdk 1.6/19
2.1.2 配置ssh 免密码登录/20
2.1.3 安装并运行hadoop/21
2.2 在windows 上安装与配置hadoop/23
2.2.1 安装cygwin/24
2.2.2 配置环境变量/24
2.2.3 安装和启动sshd 服务/24
2.2.4 配置ssh 免密码登录/24
2.3 安装和配置hadoop 集群/25
2.3.1 网络拓扑/25
2.3.2 定义集群拓扑/25
2.3.3 建立和安装cluster /26
2.4 日志分析及几个小技巧/32
2.5 小结/33
第3章 hadoop 应用案例分析/35
3.1 hadoop 在yahoo !的应用/36
3.2 hadoop 在ebay 的应用/38
3.3 hadoop 在百度的应用/40
3.4 hadoop 在facebook 的应用/43
3.5 hadoop 平台上的海量数据排序/46
3.6 小结/53
第4章 mapreduce 计算模型/54
4.1 为什么要用mapreduce/55
4.2 mapreduce 计算模型 /56
4.2.1 mapreduce job/56
4.2.2 hadoop 中的hello world 程序/56
4.2.3 mapreduce 的数据流和控制流/64
4.3 mapreduce 任务的优化/65
4.4 hadoop 流 /67
4.4.1 hadoop 流的工作原理/68
4.4.2 hadoop 流的命令/69
4.4.3 实战案例:添加bash 程序和python 程序到hadoop 流中/70
4.5 hadoop pipes/72
4.6 小结 /74
第5章 开发mapreduce 应用程序/75
5.1 系统参数的配置/76
5.2 配置开发环境 /78
5.3 编写mapreduce 程序/79
5.3.1 map 处理/79
5.3.2 reduce 处理/80
5.4 本地测试 /81
5.5 运行mapreduce 程序 /83
5.5.1 打包/84
5.5.2 在本地模式下运行/85
5.5.3 在集群上运行/86
5.6 网络用户界面/87
5.6.1 jobtracker 页面/87
5.6.2 工作页面/88
5.6.3 返回结果/90
5.6.4 任务页面/93
5.6.5 任务细节页面/93
5.7 性能调优/94
5.8 mapreduce 工作流/96
5.8.1 将问题分解成mapreduce 工作/97
5.8.2 运行相互依赖的工作/97
5.9 小结/98
第6章 mapreduce 应用案例/99
6.1 单词计数/100
6.1.1 实例描述/100
6.1.2 设计思路/100
6.1.3 程序代码/101
6.1.4 代码解读/102
6.1.5 程序执行/103
6.1.6 代码结果/103
6.2 数据去重/104
6.2.1 实例描述/104
6.2.2 设计思路/105
6.2.3 程序代码/105
6.3 排序/106
6.3.1 实例描述/106
6.3.2 设计思路/107
6.3.3 程序代码/107
6.4 单表关联/109
6.4.1 实例描述/109
6.4.2 设计思路/110
6.4.3 程序代码/110
6.5 多表关联/113
6.5.1 实例描述/113
6.5.2 设计思路/114
6.5.3 程序代码/114
6.6 小结/116
第7章 mapreduce 工作机制/117
7.1 mapreduce 作业的执行流程/118
7.1.1 mapreduce 任务的执行总流程/118
7.1.2 提交作业/119
7.1.3 初始化作业/121
7.1.4 分配任务/123
7.1.5 执行任务/125
7.1.6 更新任务执行进度和状态/126
7.1.7 完成作业/127
7.2 错误处理机制 /127
7.2.1 硬件故障/127
7.2.2 任务失败/128
7.3 作业调度机制 /128
7.4 shuffle 和排序/129
7.4.1 map 端/130
7.4.2 reduce 端/131
7.4.3 shuffle 过程的优化/132
7.5 任务执行 /133
7.5.1 推测式执行/133
7.5.2 任务jvm 重用/134
7.5.3 跳过坏记录/134
7.5.4 任务执行环境/135
7.6 小结/136
第8章 hadoop i/o 操作/137
8.1 i/o 操作中的数据检查/138
8.2 数据的压缩 /142
8.2.1 hadoop 对压缩工具的选择/142
8.2.2 压缩分割和输入分割/143
8.2.3 在mapreduce 程序中使用压缩/143
8.3 数据的i/o 中序列化操作/144
8.3.1 writable 类/144
8.3.2 实现自己的hadoop 数据类型/152
8.4 针对mapreduce 的文件类/153
8.4.1 sequencefile 类/154
8.4.2 mapfile 类/159
8.5 小结/161
第9章 hdfs 详解/162
9.1 hadoop 的文件系统/163
9.2 hdfs 简介/165
9.3 hdfs 体系结构/166
9.3.1 hdfs 的相关概念/166
9.3.2 hdfs 的体系结构/167
9.4 hdfs 的基本操作/169
9.4.1 hdfs 的命令行操作/169
9.4.2 hdfs 的web 界面/171
9.5 hdfs 常用java api 详解/173
9.5.1 使用hadoop url 读取数据/173
9.5.2 使用filesystem api 读取数据/174
9.5.3 创建目录/176
9.5.4 写数据/177
9.5.5 删除数据/178
9.5.6 文件系统查询/178
9.6 hdfs 中的读写数据流/182
9.6.1 文件的读取/182
9.6.2 文件的写入/184
9.6.3 一致性模型/185
9.7 hdfs 命令详解/186
9.7.1 通过distcp 进行并行复制/186
9.7.2 hdfs 的平衡/187
9.7.3 使用hadoop 归档文件/188
9.7.4 其他命令/190
9.8 小结/194
第10章 hadoop 的管理/195
10.1 hdfs 文件结构/196
10.2 hadoop 的状态监视和管理工具/200
10.2.1 审计日志/200
10.2.2 监控日志/200
10.2.3 metrics/201
10.2.4 java 管理扩展 /203
10.2.5 ganglia/204
10.2.6 hadoop 管理命令/206
10.3 hadoop 集群的维护/210
10.3.1 安全模式/210
10.3.2 hadoop 的备份/211
10.3.3 hadoop 的节点管理/212
10.3.4 系统升级/214
10.4 小结/216
第11章 hive 详解/217
11.1 hive 简介/218
11.1.1 hive 的数据存储/218
11.1.2 hive 的元数据存储/220
11.2 hive 的基本操作/220
11.2.1 在集群上安装hive/220
11.2.2 配置hive/222
11.3 hive ql 详解/224
11.3.1 数据定义(ddl)操作/224
11.3.2 数据操作(dml)/231
11.3.3 sql 操作/233
11.3.4 hive ql 的使用实例/235
11.4 hive 的网络(webui)接口/237
11.5 hive 的jdbc 接口/238
11.6 hive 的优化/241
11.7 小结/243
第12章 hbase 详解/244
12.1 hbase 简介/245
12.2 hbase 的基本操作/245
12.2.1 hbase 的安装/245
12.2.2 运行hbase /249
12.2.3 hbase shell/250
12.2.4 hbase 配置/254
12.3 hbase 体系结构/255
12.4 hbase 数据模型/259
12.4.1 数据模型/259
12.4.2 概念视图/260
12.4.3 物理视图/260
12.5 hbase 与rdbms/261
12.6 hbase 与hdfs/262
12.7 hbase 客户端/262
12.8 java api /263
12.9 hbase 编程实例之mapreduce /270
12.10 模式设计/273
12.10.1 学生表/273
12.10.2 事件表/274
12.11 小结/275
第13章 mahout 详解/276
13.1 mahout 简介/277
13.2 mahout 的安装和配置/277
13.3 mahout api 简介/278
13.4 mahout 中的聚类和分类/280
13.4.1 什么是聚类和分类/280
13.4.2 mahout 中的数据表示/281
13.4.3 将文本转化成向量/282
13.4.4 mahout 中的聚类、分类算法/283
13.4.5 算法应用实例/288
13.5 mahout 应用:建立一个推荐引擎/292
13.5.1 推荐引擎简介/292
13.5.2 使用taste 构建一个简单的推荐引擎/292
13.5.3 简单分布式系统下基于产品的推荐系统简介/294
13.6 小结/297
第14章 pig 详解/299
14.1 pig 简介/300
14.2 pig 的安装和配置 /300
14.2.1 pig 的安装条件/300
14.2.2 pig 的下载、安装和配置/301
14.2.3 pig 运行模式/301
14.3 pig latin 语言/304
14.3.1 pig latin 语言简介/304
14.3.2 pig latin 的使用/305
14.3.3 pig latin 的数据类型/307
14.3.4 pig latin 关键字/308
14.4 用户定义函数 /313
14.4.1 编写用户定义函数/313
14.4.2 使用用户定义函数/315
14.5 pig 实例 /315
14.5.1 local 模式/316
14.5.2 mapreduce 模式/318
14.6 pig 进阶/319
14.6.1 数据实例/319
14.6.2 pig 数据分析/320
14.7 小结/324
第15章 zookeeper 详解/326
15.1 zookeeper 简介/327
15.1.1 zookeeper 的设计目标/327
15.1.2 数据模型和层次命名空间/328
15.1.3 zookeeper 中的节点和临时节点/328
15.1.4 zookeeper 的应用/329
15.2 zookeeper 的安装和配置/329
15.2.1 在集群上安装zookeeper/329
15.2.2 配置zookeeper/334
15.2.3 运行zookeeper/336
15.3 zookeeper 的简单操作/339
15.3.1 使用zookeeper 命令的简单操作步骤/339
15.3.2 zookeeper api 的简单使用/340
15.4 zookeeper 的特性/343
15.4.1 zookeeper 的数据模型/343
15.4.2 zookeeper 会话及状态/345
15.4.3 zookeeper watches/346
15.4.4 zookeeper acl/346
15.4.5 zookeeper 的一致性保证/347
15.5 zookeeper 的leader 选举/348
15.6 zookeeper 锁服务/348
15.6.1 zookeeper 中的锁机制/349
15.6.2 zookeeper 提供的一个写锁的实现/350
15.7 使用zookeeper 创建应用程序 /351
15.8 小结/355
第16章 avro 详解/356
16.1 avro 简介/357
16.1.1 模式声明/358
16.1.2 数据序列化/362
16.1.3 数据排列顺序/364
16.1.4 对象容器文件 /365
16.1.5 协议声明/367
16.1.6 协议传输格式/368
16.1.7 模式解析/370
16.2 avro 的c/c++ 实现/371
16.3 avro 的java 实现/382
16.4 genavro(avro idl)语言/385
16.5 avro sasl 概述/390
16.6 小结/392
第17章 chukwa 详解 /393
17.1 chukwa 简介/394
17.2 chukwa 架构/395
17.2.1 客户端(agent)及其数据模型/395
17.2.2 收集器(collector)和分离解析器(demux)/396
17.2.3 hicc/398
17.3 chukwa 的可靠性/399
17.4 chukwa 集群搭建/400
17.4.1 基本配置要求/400
17.4.2 安装chukwa/400
17.5 chukwa 数据流的处理/407
17.6 chukwa 与其他监控系统比较/408
17.7 小结/409
第18章 hadoop 的常用插件与开发/411
18.1 hadoop studio 简介和使用/412
18.1.1 hadoop studio 的安装和配置/412
18.1.2 hadoop studio 的使用举例/413
18.2 hadoop eclipse 简介和使用/419
18.2.1 hadoop eclipse 安装和配置/420
18.2.2 hadoop eclipse 的使用举例/420
18.2.3 hadoop eclipse 插件开发/421
18.3 hadoop streaming 简介和使用/422
18.3.1 hadoop streaming 的使用举例/426
18.3.2 使用hadoop streaming 时常见的问题/428
18.4 hadoop libhdfs 简介和使用/430
18.4.1 hadoop libhdfs 安装和配置/430
18.4.2 hadoop libhdfs api 简介/430
18.4.3 hadoop libhdfs 的使用举例/431
18.5 小结/432
附录a 云计算在线检测平台/434
a.1 平台介绍/435
a.2 结构和功能/435
a.2.1 前台用户接口的结构和功能/435
a.2.2 后台程序运行的结构和功能/437
a.3 检测流程/437
a.4 使用/438
a.4.1 功能使用/438
a.4.2 返回结果介绍/439
a.4.3 使用注意事项/440
a.5 小结/441


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16502878/viewspace-739991/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16502878/viewspace-739991/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值