在线客服
Hadoop大数据解决方案图书
人气:20

Hadoop大数据解决方案

多年大数据&Hadoop经验的博学专家重磅力作,完整的实战案例助你从入门到精通掌握Hadoop开发技能,同时提供了所有示例代码
  • 所属分类:图书 >计算机/网络>数据库>数据仓库与数据挖掘  
  • 作者:[Benoy] [Antony]。   [Cazen] Lee。   Kai [Sasaki]。
  • 产品参数:
  • 丛书名:大数据应用与技术丛书
  • 国际刊号:9787302466451
  • 出版社:清华大学出版社
  • 出版时间:2017-03
  • 印刷时间:2017-03-01
  • 版次:1
  • 开本:32开
  • 页数:--
  • 纸张:胶版纸
  • 包装:平装-胶订
  • 套装:

内容简介

"使用Hadoop构建更的大数据解决方案 Hadoop开源且基于Java、几乎没有入门障碍,它提供了迅速占据市场的实用大数据解决方案。 《Hadoop大数据解决方案》由包括已认证Hadoop开发者、Committers和峰会演讲者在内的专家团队编写,可以作为有关该框架流程和功能的自学教程。书中单独介绍了各个组件,后用实际项目将它们联系起来并构建示例应用。本书跳过数据库开发基础知识,直奔主题,帮助有经验的开发者快速上手,并开始在真实场景中使用Hadoop。 主要内容 向你展示使用Hadoop Stack配置存储、用户体验和内存计算的方法 解释使用Kafka实时消息和Storm数据流将Hadoop与其他系统集成的方法 演示关键安全特性与技术,同时给出保障数据安全的专家建议 讲授使用Apache BigTop打包、测试和配置的基础知识,以及使用Ignite更快速执行MapReduce的方法 带你领略示例应用构建过程,展示核心组件如何协同工作,同时提供了所有示例代码"

编辑推荐

本书面向使用Hadoop来执行数据相关作业的任何人,也适合希望更好地从任意数据存储中获取有意义信息的读者。这包括大数据解决方案架构师、Linux系统和大数据工程师、大数据平台工程师、Java程序员和数据库管理员。

目录

第1章 Hadoop概述 1

1.1 商业分析与大数据 2

1.1.1 Hadoop的组件 3

1.1.2 Hadoop分布式文件系统(HDFS) 3

1.1.3 MapReduce是什么 4

1.1.4 YARN是什么 5

1.2 ZooKeeper是什么 6

1.3 Hive是什么 7

1.4 与其他系统集成 8

1.4.1 Hadoop生态系统 9

1.4.2 数据集成与Hadoop 11

1.5 小结 16

第2章 存储 19

2.1 Hadoop HDFS的基础知识 20

2.1.1 概念 21

2.1.2 架构 25

2.1.3 接口 29

2.2 在分布式模式下设置HDFS群集 35

2.3 HDFS的高级特性 40

2.3.1 快照 41

2.3.2 离线查看器 44

2.3.3 分层存储 52

2.3.4 纠删码 55

2.4 文件格式 59

2.5 云存储 63

2.6 小结 64

第3章 计算 65

3.1 Hadoop MapReduce的基础 66

3.1.1 概念 66

3.1.2 架构 69

3.2 如何启动MapReduce作业 76

3.2.1 编写Map任务 77

3.2.2 编写reduce任务 79

3.2.3 编写MapReduce作业 80

3.2.4 配置 83

3.3 MapReduce的高级特性 85

3.3.1 分布式缓存 85

3.3.2 计数器 87

3.3.3 作业历史服务器 89

3.4 与Spark作业的区别 91

3.5 小结 92

第4章 用户体验 93

4.1 Apache Hive 94

4.1.1 安装Hive 96

4.1.2 HiveQL 97

4.1.3 UDF/SerDe 103

4.1.4 Hive调优 105

4.2 Apache Pig 106

4.2.1 安装Pig 107

4.2.2 Pig Latin 108

4.3 UDF 110

4.4 Hue 111

4.5 Apache Oozie 114

4.5.1 安装Oozie 115

4.5.2 Oozie的工作原理 118

4.5.3 工作流/协调器 119

4.5.4 Oozie CLI 124

4.6 小结 124

第5章 与其他系统集成 125

5.1 Apache Sqoop 126

5.2 Apache Flume 130

5.3 Apache Kafka 136

5.3.1 工作原理 138

5.3.2 Kafka Connect 141

5.3.3 流处理 143

5.4 Apache Storm 144

5.4.1 工作原理 145

5.4.2 Trident 148

5.4.3 Kafka集成 149

5.5 小结 152

第6章 Hadoop安全 153

6.1 提升Hadoop群集安全性 154

6.1.1 边界安全 154

6.1.2 Kerberos认证 156

6.1.3 Hadoop中的服务级授权 162

6.1.4 用户模拟 167

6.1.5 提升HTTP信道的安全性 170

6.2 提升数据安全性 174

6.2.1 数据分类 175

6.2.2 将数据传到群集 176

6.2.3 保护群集中的数据 182

6.3 增强应用程序安全性 189

6.3.1 YARN架构 189

6.3.2 YARN中的应用提交 190

6.4 小结 195

第7章 自由的生态圈:Hadoop与Apache BigTop 197

7.1 基础概念 198

7.1.1 软件栈 199

7.1.2 测试栈 200

7.1.3 在我的笔记本电脑上工作 201

7.2 开发定制的软件栈 201

7.2.1 Apache Bigtop:历史 201

7.2.2 Apache Bigtop:概念和哲学思想 202

7.2.3 项目结构 204

7.2.4 谈谈构建系统 205

7.2.5 工具链和开发环境 206

7.2.6 BOM定义 207

7.3 部署 208

7.3.1 Bigtop Provisioner 208

7.3.2 群集的无主节点Puppet部署 209

7.3.3 使用Puppet进行配置管理 213

7.4 集成验证 215

7.4.1 iTests和验证应用程序 216

7.4.2 栈集成测试开发 217

7.4.3 栈的验证 220

7.4.4 群集故障测试 221

7.4.5 栈的冒烟测试 222

7.5 将所有工作组合在一起 223

7.6 小结 224

第8章 Hadoop软件栈的In-Memory计算 227

8.1 In-Memory计算简介 229

8.2 Apache Ignite:内存优先 231

8.2.1 Apache Ignite的系统体系架构 232

8.2.2 数据网格 233

8.2.3 高可用性讨论 236

8.2.4 计算网格 237

8.2.5 服务网格 238

8.2.6 内存管理 238

8.2.7 持久化存储 240

8.3 使用Ignite加速旧式Hadoop 240

8.3.1 In-Memory存储的好处 241

8.3.2 内存文件系统:HDFS缓存 242

8.3.3 In-Memory MapReduce 243

8.4 Apache Ignite的高级用法 247

8.4.1 Spark和Ignite 247

8.4.2 共享状态 249

8.4.3 Hadoop上的In-Memory SQL 251

8.4.4 使用Ignite的SQL 252

8.4.5 使用Apache Ignite进行流处理 255

8.5 小结 256

术语表 259

在线预览

1.1 商业分析与大数据商业分析通过统计和业务分析对数据进行研究。Hadoop 允许你在其数据存储中进行业务分析。这些结果使得组织和公司能够做出有利于自身的更好商业决策。为加深理解,让我们勾勒一下大数据的概况。鉴于所涉及数据的规模,它们会分布于大量存储和计算节点上,而这得益于使用Hadoop。由于Hadoop 是分布式的(而非集中式的),因而不具备关系型数据库管理系统(RDBMS)的特点。这使得你能够使用Hadoop 所提供的大型数据存储和多种数据类型。第1 章 Hadoop 概述3例如,让我们考虑类似Google、Bing 或者Twitter 这样的大型数据存储。所有这些数据存储都会随着诸如查询和庞大用户基数等活动事件而呈现出指数增长。Hadoop 的组件可以帮助你处理这些大型数据存储。类似Google 这样的商业公司可使用Hadoop 来操作、管理其数据存储并从中产生出有意义的结果。通常用于商业分析的传统工具并不旨在处理或分析超大规模数据集,但Hadoop 是一个适用于这些商业模型的解决方案。1.1.1 Hadoop 的组件Hadoop Common 是Hadoop 的基础,因为它包含主要服务和基本进程,例如对底层操作系统及其文件系统的抽象。HadoopCommon 还包含必要的Java 归档(Java Archive,JAR)文件和用于启动Hadoop 的脚本。Hadoop Common 包甚至提供了源代码和文档,以及贡献者的相关内容。如果没有Hadoop Common,你无法运行Hadoop。与任何软件栈一样,Apache 对于配置Hadoop Common 有一定要求。大体了解Linux 或Unix 管理员所需的技能将有助于你完成配置。Hadoop Common 也称为Hadoop Stack,并不是为初学者设计的,因此实现的速度取决于你的经验。事实上,Apache 在其网站上明确指出,如果你还在努力学习如何管理Linux 环境的话,那么Hadoop并不是你能够应付的任务。建议在尝试安装Hadoop 之前,你需要先熟悉此类环境。1.1.2 Hadoop 分布式文件系统(HDFS)在Hadoop Common 安装完成后,是时候该研究Hadoop Stack的其余组件了。HDFS(Hadoop Distributed File System)提供一个分布式文件系统,设计目标是能够运行在基础硬件组件之上。大多数企业被其最小化的系统配置要求所吸引。此环境可以在虚拟机(VirtualHadoop 大数据解决方案4Machine,VM)或笔记本电脑上完成初始配置,而且可以升级到服务器部署。它具有高度的容错性,并且被设计为能够部署在低成本的硬件之上。它提供对应用程序数据的高吞吐量访问,适合于面向大型数据集的应用程序。在任何环境中,硬件故障都是不可避免的。有了HDFS,你的数据可以跨越数千台服务器,而每台服务器上均包含一部分基础数据。这就是容错功能发挥作用的地方。现实情况是,这么多服务器总会遇到一台或者多台无法正常工作的风险。HDFS 具备检测故障和快速执行自动恢复的功能。HDFS 的设计针对批处理做了优化,它提供高吞吐量的数据访问,而非低延迟的数据访问。运行在HDFS 上的应用程序有着大型数据集。在HDFS 中一个典型的文件大小可以达到数百GB 或更大,所以HDFS 显然支持大文件。它提供高效集成数据带宽,并且单个群集可以扩展至数百节点。Hadoop 是一个单一功能的分布式系统,为了并行读取数据集并提供更高的吞吐量,它与群集中的机器进行直接交互。可将Hadoop想象为一个动力车间,它让单个CPU 运行在群集中大量低成本的机器上。既然已经介绍了用于读取数据的工具,下一步便是用MapReduce 来处理它。1.1.3 MapReduce 是什么MapReduce 是Hadoop 的一个编程组件,用于处理和读取大型数据集。MapReduce 算法赋予了Hadoop 并行化处理数据的能力。简而言之,MapReduce 用于将大量数据浓缩为有意义的统计分析结果。MapReduce 可以执行批处理作业,即能在处理过程中多次读取大量数据来产生所需的结果。对于拥有大型数据存储或者数据湖的企业和组织来说,这是一种重要的组件,它将数据限定到可控的大小范围内,以便用于分析第1 章 Hadoop 概述5或查询。如图1-1 所示,MapReduce 的工作流程就像一个有着大量齿轮的古老时钟。在移动到下一个之前,每一个齿轮执行一项特定任务。它展现了数据被切分为更小尺寸以供处理的过渡状态。主节点客户端HDFS分布式数据存储YARN分布式数据处理从属NAMENODE活动NAMENODE备用NAMENODE调度器共享编辑日志或者JOURNALNODE从节点容器 容器容器资源管理器数据节点 数据节点节点管理器 节点管理器数据节点节点管理器图1-1MapReduce 的功能使得它成为最常用的批处理工具之一。该处理器的灵活性使其能利用自身的影响力来挑战现有系统。通过将数据处理的工作负载分为多个并行执行的任务,MapReduce 允许其用户处理存储于HDFS 上不限数量的任意类型的数据。因此,MapReduce让Hadoop 成为了一款强大工具。在Hadoop 最近的发展中,另有一款称为YARN 的组件已经可用于进一步管理Hadoop 生态系统。1.1.4 YARN 是什么YARN 基础设施(另一个资源协调器)是一项用于提供执行应用程序所需的计算资源(内存、CPU 等)的框架。YARN 有什么诱人的特点或是性质?其中两个重要的部分是资源管理器和节点管理器。让我们来勾勒YARN 的框架。首先考虑一个两层的群集,其中资源管理器在顶层(每个群集中只有一个)。资Hadoop 大数据解决方案6源管理器是主节点。它了解从节点所在的位置(较底层)以及它们拥有多少资源。它运行了多种服务,其中最重要的是用于决定如何分配资源的资源调度器。节点管理器(每个群集中有多个)是此基础设施的从节点。当开始运行时,它向资源管理器声明自己。此类节点有能力向群集提供资源,它的资源容量即内存和其他资源的数量。在运行时,资源调度器将决定如何使用该容量。Hadoop 2 中的YARN框架允许工作负载在各种处理框架之间动态共享群集资源,这些框架包括MapReduce、Impala 和Spark。YARN 目前用于处理内存和CPU,并将在未来用于协调其他资源,例如磁盘和网络I/O。1.2 ZooKeeper 是什么ZooKeeper 是另一项Hadoop 服务——分布式系统环境下的信息保管员。ZooKeeper 的集中管理解决方案用于维护分布式系统的配置。由于ZooKeeper 用于维护信息,因此任何新节点一旦加入系统,将从ZooKeeper 中获取近期的集中式配置。这也使得你只需要通过ZooKeeper 的一个客户端改变集中式配置,便能改变分布式系统的状态。名称服务是将某个名称映射为与该名称相关信息的服务。它类似于活动目录,作为一项名称服务,活动目录的作用是将某人的用户ID(用户名)映射为环境中的特定访问或权限。同样,DNS 服务作为名称服务,将域名映射为IP 地址。通过在分布式系统中使用ZooKeeper,你能记录哪些服务器或服务正处于运行状态,并且能够通过名称查看它们的状态。如果有节点出现问题导致宕机,ZooKeeper 会采用一种通过选举leader 来完成自动故障切换的策略,这是它自身已经支持的解决方案(见图1-2)。选举leader 是一项服务,可安装在多台机器上作为冗余备用,但在任何时刻只有一台处于活跃状态。如果这个活跃的第1 章 Hadoop 概述7服务因为某些原因发生了故障,另一个服务则会起来继续它的工作。

网友评论(不代表本站观点)

来自m***k(**的评论:

方案很多,内容丰富翔实,以后写技术材料可以参考

2017-07-03 21:24:46
来自匿名用**的评论:

不错,不过这快递我真要说下,郑州速捷快递,郑州仓库出仓,我就在郑州本地,三天才送到,不知道该说啥

2017-06-20 21:16:29

免责声明

更多相关图书