当前位置:
首页 > 互联网+ > 大数据 > Hadoop构建数据仓库与实战分析pdf/doc/txt格式电子书下载

Hadoop构建数据仓库与实战分析pdf/doc/txt格式电子书下载

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

Hadoop构建数据仓库与实战分析pdf/doc/txt格式电子书下载

书名:Hadoop构建数据仓库与实战分析pdf/doc/txt格式电子书下载

推荐语:

作者:小牛学堂编

出版社:电子工业出版社

出版时间:2019-05-01

书籍编号:30499158

ISBN:9787121365393

正文语种:中文

字数:203676

版次:1

所属分类:互联网+-大数据

全书内容:

Hadoop构建数据仓库与实战分析pdf/doc/txt格式电子书下载








内容简介


本书从Hadoop背景、特性、安装等开始,逐步讲解其配置、解决方案、元数据解析等内容。本书共10章,主要内容包括:Hadoop简介,Hadoop的安装与配置,HDFS HA及解决方案,HDFS元数据解析,Hadoop的元数据备份方案,Hadoop的BackupNode方案,MapReduce设计理念与基本架构,MapReduce编程模型,YARN设计理念与基本架构,YARN基础库。


本书可作为高等院校计算机等相关专业的大数据或相关课程的教材,也可供大数据领域的工程技术人员学习、参考。

前言


Hadoop是一个由Apache基金会开发的分布式计算平台。用户可以在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的优势实现高速运算和存储。


Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS具有高容错性的特点,可以用来设计、部署在价格低廉的硬件上,同时它可提供高吞吐量来访问应用程序中的数据,适合有超大数据集的应用程序。HDFS放宽了可移植操作系统接口(Portable Operating System Interface of Unix,POSIX)的要求,可以用流的形式访问文件系统中的数据。


本书从Hadoop背景、特性、安装等开始,逐步讲解其配置、解决方案、元数据解析等内容。第1、2章对Hadoop的历史、功能与应用、体系结构等方面进行简要介绍,并且详细地介绍在Linux、Windows等多个操作系统环境下安装与配置Hadoop集群的步骤,便于读者借鉴。从第3章开始,依次讲解HDFS HA及解决方案、HDFS元数据解析、Hadoop的元数据备份方案、Hadoop的BackupNode方案等,主要结合具体实例,使读者对Hadoop有一定了解。从第7章开始,进一步讲解MapReduce及YARN的相关知识,包括MapReduce设计理念与基本架构、MapReduce编程模型、YARN设计理念与基本架构、YARN基础库等。


本书结合实例对Hadoop进行讲解,从Hadoop基础知识着手,引导读者了解及搭建基本环境,由浅入深地引导读者开展Hadoop的相关学习。本书结合实例,给出详细的代码,实例代码演示中所涉及的环境在相关章节中有多处说明,读者可根据自身实际情况进行参考。


由于写作仓促且作者水平有限,本书难免存在不足,恳请各位专家、学者、读者批评指正。


作 者


2019年4月

第1章 Hadoop简介


1.1 Hadoop相关介绍


1.1.1 Hadoop概述


Hadoop是Apache基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式系统基础架构。HDFS的高容错性、高伸缩性等优点允许用户将Hadoop部署在价格低廉的硬件上,形成分布式系统;MapReduce分布式编程模型允许用户在不了解分布式系统底层细节的情况下开发并行应用程序。因此,用户可以利用Hadoop轻松地组织计算机资源,从而搭建自己的分布式计算平台,并且可以充分利用集群的计算和存储能力,完成对海量数据的处理。经过业界和学术界长达10年的锤炼,目前的Hadoop已经趋于完善,在实际的数据处理和分析任务中担任着不可替代的角色。


1.1.2 Hadoop的历史


Hadoop的源头是Apache Nutch,该项目始于2002年,是Apache Lucene的子项目之一。2004年,Google在“操作系统设计与实现”(Operating System Design and Implementation,OSDI)会议上公开发表了题为MapReduce : Simplified Data Processing on Large Clusters(《MapReduce:简化大规模集群上的数据处理》)的论文之后,Doug Cutting等人受到启发,开始尝试实现MapReduce计算框架,并将它与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法。由于NDFS和MapReduce在Nutch引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并命名为Hadoop。到2008年年初,Hadoop已成为Apache的顶级项目,包含众多子项目,它被包括Yahoo在内的很多互联网公司采用。现在的Hadoop 1.0.1包含HDFS、MapReduce子项目,且与Pig、ZooKeeper、Hive、HBase等项目相关。


1.1.3 Hadoop的功能与作用


我们为什么需要Hadoop呢?众所周知,现代社会的信息增长速度很快,这些信息积累了大量数据,包括个人数据和工业数据。预计到2020年,每年产生的数字信息中将会有超过1/3的内容驻留在云平台中或借助云平台处理。我们需要对这些数据进行分析处理,以获取更多有价值的信息。那么如何高效地存储管理这些数据、如何分析这些数据呢?这时可以选用Hadoop系统。在处理这类问题时,它采用分布式存储方式来提高读/写速度和扩大存储容量;采用MapReduce整合分布式文件系统中的数据,保证高速地分析处理数据;与此同时,还采用存储冗余数据的方式来保证数据的安全性。


Hadoop中的HDFS具有高容错性,并且是基于Java语言开发的,这使得Hadoop可以部署在价格低廉的计算机集群中,同时不限于某个操作系统。HDFS的数据管理能力、MapReduce处理任务时的高效率及它的开源特性,使Hadoop在同类分布式系统中大放异彩,并在众多行业和科研领域中被广泛应用。


1.1.4 Hadoop的优势


Hadoop是一个能够让用户轻松构建和使用的分布式计算平台。用户可以轻松地在Hadoop上开发、运行需要处理海量数据的应用程序。它主要有以下几个优点。


(1)高可靠性。Hadoop按位存储和处理数据的能力值得信赖。


(2)高扩展性。Hadoop通过在可用的计算机集簇间分配数据来完成计算任务,这些集簇可以方便地扩展到数以千计的节点中。


(3)高效性。Hadoop能够在节点之间动态地移动数据,以保证各个节点的动态平衡,因此其处理速度非常快。


(4)高容错性。Hadoop能够自动保存数据的多份副本,并且能够自动将失败的任务重新分配。


1.1.5 Hadoop的应用现状与趋势


由于Hadoop优势突出,因此基于Hadoop的应用已经遍地开花,尤其是在互联网领域。Yahoo通过集群运行Hadoop,用以支持广告系统和Web搜索的研究;Facebook借助集群运行Hadoop,来支持数据分析和机器学习;百度搜索引擎则使用Hadoop进行搜索日志分析和网页数据挖掘工作;淘宝的Hadoop系统用于存储并处理电子商务交易的相关数据;中国移动研究院基于Hadoop的“大云”(BigCloud)系统对数据进行分析并对外提供服务。


2008年2月,作为Hadoop最大贡献者的Yahoo构建了当时最大规模的Hadoop应用。它们在2000个节点上使用了超过一万个Hadoop虚拟机器来处理超过5PB的网页内容,分析大约一百万个网络连接之间的网页索引资料。这些网页索引资料压缩后超过300TB。Yahoo基于这些为用户提供了高质量的搜索服务。


Hadoop目前已经取得了非常突出的成绩。随着互联网的发展,新的业务模式还将不断涌现,Hadoop的应用也会从互联网领域向电信、电子商务、银行、生物制药等领域拓展。相信在未来,Hadoop将会在更多的领域中扮演幕后英雄,为我们提供更加快捷、优质的服务。


1.2 Hadoop的项目


现在Hadoop已经发展成为包含很多项目的集合。虽然其核心内容是MapReduce和HDFS,但与Hadoop相关的Common、Avro、Chukwa、Hive、HBase等项目也是不可或缺的。它们提供了互补性服务或在核心层上提供了更高层的服务。图1-1所示为Hadoop的项目结构图。

img

图1-1 Hadoop的项目结构图

下面将对Hadoop的各个关联项目进行详细介绍。


(1)Common:Common是为Hadoop其他子项目提供支持的常用工具,它主要包括FileSystem、RPC和串行化库。它们为在廉价硬件上搭建云计算环境提供基础的服务,并且会为运行在该平台上的软件开发提供所需的API。


(2)Avro:Avro是用于数据序列化的系统。它提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集,具有远程调用RPC的功能和简单的动态语言集成功能。其中代码生成器既不需要读/写文件数据,又不需要使用或实现RPC协议。Avro系统依赖于模式,数据的读和写是在模式之下完成的。这样可以减少写入数据的开销,提高序列化的速度并缩减其大小;同时,也可以方便动态脚本语言的使用,因为数据连同其模式都是自描述的。在RPC中,Avro系统的客户端和服务端通过握手协议进行模式的交换,因此当客户端和服务端拥有彼此全部的模式时,不同模式下相同命名字段、丢失字段和附加字段等信息的一致性问题就得到了很好的解决。


(3)MapReduce:MapReduce是一种编程模型,用于大规模数据集(大于 1TB)的并行运算。映射(Map)、化简(Reduce)的概念和它们的主要思想都是从函数式编程语言中借鉴而来的。它极大地方便了编程人员,使他们即使在不了解分布式并行编程的情况下,也可以将自己的程序运行在分布式系统上。MapReduce在执行时先指定一个Map函数,把输入key/value对映射成一组新的key/value对,经过一定处理后交给Reduce,Reduce对相同key下的所有value进行处理后再输出key/value对,作为最终的结果。


图1-2所示为MapReduce的任务处理流程图,它展示了MapReduce程序将输入划分到不同的Map上,再将Map的结果合并到Reduce中,然后进行处理的输出过程。

img

图1-2 MapReduce的任务处理流程图

(4)HDFS:HDFS是一个分布式文件系统。因为HDFS具有高容错性的特点,所以它可以设计部署在价格低廉的硬件上。它可以提供高吞吐量(high throughput)来访问应用程序的数据,适用于有着超大数据集的应用程序。HDFS放宽了对可移植操作系统接口(POSIX,Portable Operating System Interface)的要求,这样可以以流的形式访问文件系统中的数据。HDFS原本是开源的Apache项目Nutch的基础结构,最后却成为Hadoop的基础架构之一。以下是HDFS的设计目标。


① 检测和快速恢复硬件故障。硬件故障是计算机常见的问题。整个HDFS由数百甚至数千个存储着数据文件的服务器组成。而如此多的服务器则意味着高故障率,因此,故障的检测和快速恢复是HDFS的一个核心目标。


② 流式的数据访问。HDFS使应用程序流式地访问它们的数据集。HDFS被设计为适合进行批量处理,而不适合用户交互式处理。所以它重视数据吞吐量,而不是数据访问的反应速度。


③ 简化一致性模型。大部分HDFS程序对文件的操作需要一次写入,多次读取。一个文件一旦经过创建、写入、关闭,就不需要修改了。这个假设简化了数据一致性问题和高吞吐量的数据访问问题。


④ 通信协议。所有的通信协议都是在TCP/IP协议之上的。在一个客户端和明确配置了端口的名字节点(NameNode)建立连接之后,它和名字节点的协议便是客户端协议(Client Protocal)。数据节点(DataNode)和名字节点之间则用数据节点协议(Data

....

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

本站仅展示书籍部分内容
如有任何咨询

请加微信10090337咨询

再显示