大数据技术基础教程 课件 第3、4章 大数据处理框架Apache Hadoop、分布式文件系统HDFS_第1页
大数据技术基础教程 课件 第3、4章 大数据处理框架Apache Hadoop、分布式文件系统HDFS_第2页
大数据技术基础教程 课件 第3、4章 大数据处理框架Apache Hadoop、分布式文件系统HDFS_第3页
大数据技术基础教程 课件 第3、4章 大数据处理框架Apache Hadoop、分布式文件系统HDFS_第4页
大数据技术基础教程 课件 第3、4章 大数据处理框架Apache Hadoop、分布式文件系统HDFS_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章大数据处理框架ApacheHadoop《大数据技术基础教程》学习目标/Target

掌握Hadoop的安装与使用

了解Hadoop简介

了解Hadoop生态系统章节概述/

SummaryApacheHadoop是一个开源的、可运行于大规模集群上的分布式计算平台,是大数据开发所使用的一个核心框架,它实现了分布式文件系统HDFS和MapReduce计算模型等功能,是一个允许使用简单编程模型跨计算机集群分布式处理大型数据集的系统。目录/Contents010203Hadoop简介Hadoop生态系统Hadoop的安装与使用Hadoop简介11.1Hadoop概述HDFS是针对谷歌文件系统GFS(GoogleFileSystem)的开源实现,是面向普通硬件环境的分布式文件系统,具有较高的读写速度、很好的容错性和可伸缩性,支持大规模数据的分布式存储分布式文件系统HDFSMapReduce是针对谷歌MapReduce的开源实现,允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,采用MapReduce来整合分布式文件系统上的数据,可以保证分析和处理数据的高效性。分布式计算框架MapReduceHadoop1.2Hadoop发展简史Hadoop雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java实现的搜索引擎。2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是googleFileSystem,google公司为了存储海量搜索数据而设计的专用文件系统。2004年Nutch创始人DougCutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。2004年Google又发表了一篇技术学术论文MapReduce:SimplifiedDataProcessingonLargeClusters。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。2005年DougCutting又基于MapReduce,在Nutch搜索引擎实现了该功能。1.2Hadoop发展简史2008年1月,Hadoop成为Apache顶级项目。2008年6月,Hadoop的第一个SQL框架——Hive成为了Hadoop的子项目。2010年5月,HBase脱离Hadoop项目,成为Apache顶级项目。2010年9月,Hive脱离Hadoop,成为Apache顶级项目。2010年9月,Pig脱离Hadoop,成为Apache顶级项目。2011年12月,Hadoop1.0.0版本发布,标志着Hadoop已经初具生产规模。2013年10月,Hadoop2.0.0版本发布。2017年12月,Hadoop3.0.0版本发布1.3Hadoop的特征(1)高可靠性(2)高可扩展性(3)高效性(4)高容错性(5)成本低(6)运行在Linux平台上(7)支持多种编程语言Hadoop生态系统22.1HDFS(Hadoop分布式文件系统)2.1HDFS(Hadoop分布式文件系统)1.Client:切分文件;访问HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。2.NameNode:Master节点,在Hadoop1.X中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。3.DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。4.SecondaryNameNode:辅助NameNode,分担其工作量;定期合并fsimage和edits,推送给NameNode;在紧急情况下,它可辅助恢复NameNode,但SecondaryNameNode并非NameNode的热备。2.2分布式计算框架MapReduceMapReduce是一种计算模型,用以进行大数据量的计算。MapReduce把整个并行运算过程高度抽象到两个函数上,一个是map,另一个是reduce。Map函数:map函数会将小的数据集转换为适合输入的<key,value>键值对的形式,然后处理成一系列具有相同key的<key,value>作为输出,我们可以把输出看做list(<key,value>)Reduce函数:reduce函数会把map函数的输出作为输入,然后提取具有相同key的元素进行操作,最后的输出结果也是<key,value>键值对的形式,并合并成一个文件。2.3资源管理框架Yarn2.3资源管理框架YarnHadoop2.x在原来的基础上引入了新的框架YARN(YetAnotherResourceNegotiator)。YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG(有向无环图)。2.4分布式列存数据库HBaseApacheHBase是一个开源的、分布式的、非关系型的列式数据库。HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key-Value)。HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。2.4分布式列存数据库HBase2.5基于Hadoop的数据仓库HiveHive是一个基于Hadoop的数据仓库架构,使用SQL语句读、写和管理大型分布式数据集。Hive可以将SQL语句转化为MapReduce(或ApacheSpark和ApacheTez)任务执行,大大降低了Hadoop的使用门槛,减少了开发MapReduce程序的时间成本。2.5基于Hadoop的数据仓库HiveHive是一个基于Hadoop的数据仓库架构,使用SQL语句读、写和管理大型分布式数据集。Hive可以将SQL语句转化为MapReduce(或ApacheSpark和ApacheTez)任务执行,大大降低了Hadoop的使用门槛,减少了开发MapReduce程序的时间成本。2.6分布式协作服务Zookepper2.6分布式协作服务ZookepperZooKeeper是一个分布式应用程序协调服务,主要用于解决分布式集群中应用系统的一致性问题。ZooKeeper集群由一组服务器(Server)节点组成,在这些服务器节点中有一个节点的角色为Leader,其他节点的角色为Follower。2.7日志收集工具Flume2.7日志收集工具FlumeApacheFlume是一个分布式的、可靠和易用的日志收集系统,用于将大量日志数据从许多不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储。Flume中最小的独立运行单位是Agent,Agent是一个JVM进程,运行在日志收集节点(服务器节点),其包含三个组件——Source(源)、Channel(通道)和Sink(接收地)。数据可以从外部数据源流入到这些组件,然后再输出到目的地。2.8数据同步工具SqoopSqoop是一种用于在Hadoop和关系型数据库(RDBMS,如MySQL或Oracle)之间传输数据的工具。使用Sqoop可以批量将数据从关系型数据库导入到Hadoop分布式文件系统(HDFS)及其相关系统(如HBase和Hive)中,也可以把Hadoop文件系统及其相关系统中的数据导出到关系型数据库中。Hadoop的安装与使用33.1安装准备工作第一步,使用快捷键Ctrl+Alt+T打开终端;第二步,使用sudo-s-H或sudosu-root或sudosu进入root用户;第三步,创建一个名为Hadoop的用户,并使用/bin/bash作为Shell:sudouseradd-mHadoop-s/bin/bash第四步,将Hadoop用户的密码设为Hadoop,即用户名和密码相同,注意输入密码时终端不会显示所输密码:sudopasswdHadoop第五步,为Hadoop用户增加管理员权限,以方便部署:sudoadduserHadoopsudo第六步,注销当前系统登录账户,返回到Linux系统的登录界面,选择Hadoop用户并输入密码进行登录。3.2安装SSH在Linux的终端中执行以下命令:sudoapt-getinstallopenssh-server安装后,使用如下命令来登录本机:sshHadoop@localhost或sshlocalhost3.2安装SSH设置成SSH无密码登录:①输入命令logout或exit退出刚才的SSH,回到原来的终端窗口;②通过下列命令进入.ssh目录:cd~/.ssh/③通过下列命令生成公钥(id_rsa.pub)和私钥(id_rsa):ssh-keygen-trsa④通过下列命令讲公钥写入到~/.ssh/authorized_keys中:cat./id_rsa.pub>>./authorized_keys⑤执行sshlocalhost命令,发现无需密码就能直接登录了。3.2安装SSH设置成SSH无密码登录:①输入命令logout或exit退出刚才的SSH,回到原来的终端窗口;②通过下列命令进入.ssh目录:cd~/.ssh/③通过下列命令生成公钥(id_rsa.pub)和私钥(id_rsa):ssh-keygen-trsa④通过下列命令讲公钥写入到~/.ssh/authorized_keys中:cat./id_rsa.pub>>./authorized_keys⑤执行sshlocalhost命令,发现无需密码就能直接登录了。3.3安装Java环境1)在联网状态下,通过下列命令安装JDK:sudoapt-getinstalldefault-jredefault-jdk2)JDK的安装路径为/usr/lib/jvm/default-java;3)配置JAVA_HOME环境变量,在Linux终端输入下列命令打开当前登录用户的环境变量配置文件.bashrc:vim~/.bashrc在文件最前面添加如下单独一行(注意,等号=前后不能有空格),然后保存退出:exportJAVA_HOME=/usr/lib/jvm/default-java4)然后要让环境变量立即生效,执行如下命令:source~/.bashrc5)最后,检验一下是否安装正确:java-version3.4Hadoop安装配置及使用Hadoop包括3种安装模式:1)单机模式只在一台机器上运行,存储采用本地文件系统,没有采用分布式文件系统HDFS;2)伪分布式模式存储采用分布式文件系统HDFS,但是HDFS的名称节点和数据节点都在同一台机器上;3)分布式模式存储采用分布式文件系统HDFS,而且HDFS的名称节点和数据节点位于不同机器上。本教材主要介绍单机模式和伪分布式安装。3.4Hadoop安装配置及使用伪分布式模式配置:1)修改配置文件2)执行名称节点格式化3)启动Hadoop4)Hadoop无法正常启动的解决方法5)使用Web界面查看HDFS信息6)运行Hadoop伪分布式实例7)关闭Hadoop8)配置PATH变量本章小结本章主要介绍了大数据处理框架ApacheHadoop,包括Hadoop简介、Hadoop生态系统、Hadoop的安装与使用。通过本章的学习,希望大家能够了解Hadoop的特性、Hadoop的应用现状,后续我们将基于本章介绍的内容进行大数据技术的进一步学习。第四章分布式文件系统HDFS《大数据技术基础教程》学习目标/Target了解HDFS简介

理解HDFS设计原则理解HDFS核心概念掌握HDFS体系结构学习目标/Target

理解HDFS存储原理

掌握HDFS数据读写流程

掌握HDFS编程实现章节概述/

SummaryHadoop分布式文件系统(HadoopDistributedFileSystem,HDFS)是针对GFS的开源实现,它是Hadoop两大核心组成部分之一,提供了在廉价服务器集群中进行大规模分布式文件存储的能力。目录/Contents010203HDFS简介HDFS设计原则HDFS核心概念04HDFS体系结构目录/Contents050607HDFS存储原理HDFS数据读写流程HDFS编程实现HDFS简介11.1HDFS简介HDFS,是HadoopDistributedFileSystem的简称,是Hadoop抽象文件系统的一种实现。Hadoop抽象文件系统可以与本地系统、AmazonS3等集成,甚至可以通过Web协议(webhsfs)来操作。HDFS设计原则22.1设计目标(1)存储非常大的文件(2)采用流式的数据访问方式(3)运行于商业硬件上2.2HDFS不适合的应用类型(1)低延时的数据访问(2)大量小文件(3)多方读写,需要任意的文件修改HDFS核心概念33.1Blocks物理磁盘中有块的概念,磁盘的物理Block是磁盘操作最小的单元,读写操作均以Block为最小单元,一般为512Byte。HDFS的Block块比一般单机文件系统大得多,默认为128M。HDFS的文件被拆分成block-sized的chunk,chunk作为独立单元存储。比Block小的文件不会占用整个Block,只会占据实际大小。例如,如果一个文件大小为1M,则在HDFS中只会占用1M的空间,而不是128M。3.2Namenode&Datanode(1)NamenodeNamenode存放文件系统树及所有文件、目录的元数据。元数据持久化为2种形式:namespaceimage和editlog。HDFS针对单点故障提供了2种解决机制:1)备份持久化元数据2)SecondaryNamenode3.2Namenode&Datanode图4-2第二名称节点工作示意图3.2Namenode&Datanode(2)Datanode数据节点负责存储和提取Block,读写请求可能来自namenode,也可能直接来自客户端。数据节点周期性向Namenode汇报自己节点上所存储的Block相关信息。3.3BlockCachingDataNode通常直接从磁盘读取数据,但是频繁使用的Block可以在内存中缓存。默认情况下,一个Block只有一个数据节点会缓存。3.4HDFSFederationNameNode的内存会制约文件数量,HDFSFederation提供了一种横向扩展NameNode的方式。在Federation模式中,每个NameNode管理命名空间的一部分,例如一个NameNode管理/user目录下的文件,另一个NameNode管理/share目录下的文件。3.5HDFSHA(HighAvailability高可用性)当NameNode故障时,常规的做法是使用元数据备份重新启动一个NameNode。元数据备份可能来源于:多文件系统写入中的备份或者SecondNameNode的检查点文件。启动新的Namenode之后,需要重新配置客户端和DataNode的NameNode信息。HDFS体系结构44.1HDFS体系结构的优点(1)处理超大文件(2)流式的访问数据(3)运行在廉价的商用机器集群上4.2HDFS体系结构的缺点(1)不适合低延迟数据访问(2)无法高效存储小文件(3)不支持多用户写入及任意修改文件HDFS存储原理55.1数据的冗余存储(1)加快数据传输速度。当多个客户端需要同时访问同一个文件时,可以让各个客户端分别从不同的数据块副本中读取数据,这就大大加快了数据传输速度。(2)容易检查数据错误。HDFS的数据节点之间通过网络传输数据,采用多个副本可以很容易判断数据传输是否出错。(3)保证数据的可靠性。即使某个数据节点出现故障失效,也不会造成数据丢失。5.2数据的存取策略首先,HDFS将每一个文件的数据进行分块存储,同时每一个数据块又保存有多个副本,这些数据块副本分布在不同的机器节点上,这种数据分块存储+副本的策略是HDFS保证可靠性和性能的关键。HDFS采用一种称为机架感知的策略来改进数据的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论