您好,欢迎访问三七文档
大数据课程复习题1.大数据的定义大数据,指的是所涉及的资料量规模巨大到无法通过目前的主流软件工具,在合理时间内达到撷(xie2)取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。2.大数据的三个特点3Vs:-Volume(大量)数据量大,从TB级别跃升到PB级别-Variety(多样)数据类型繁多·非结构化:文本、图形、声音等·半结构化:日志·结构化数据:行列规整的表单数据·多结构化数据:以上三种类型混合的数据-Velocity(高速)数据的时效性,数据仅在一个短暂的时间范围有价值。3.Hadoop项目起始于2002年,创始人是DougCutting4.Hadoop的两个核心组成部分-分布式文件系统——HDFS(NutchDistributedFileSystem)·数据被分割成小块存于上千的节点上-分布式数据处理架构——MapReduce·MapReduce在数据节点上处理,降低I/O成本·MapReduce只是一个软件架构,充分灵活,是开发者易于实现多种多样的应用程序。5.Hadoop的优点-高可靠性·Hadoop按位存储和处理数据的能力值得人们信赖。-高扩展性·Hadoop是在可用的计算机集簇间分配数据并完成计算业务的,这些集簇可以方便地扩展到数以千计的节点中。-高效性·Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。-高容错性Hadoop能够自动的保存数据的多个副本,并且能够自动将失败的任务重新分配。-低成本·与一体机、商用数据仓库等相比,Hadoop是开源的,项目的软件成本因此会大大降低。6.Hadoop生态系统构成项目名称说明Ambari整合的Hadoop集群管理工具,包括安装、监控和维护Flume分布式日志收集系统HBase分布式、面向列的开源数据库,适用于非结构大数据存储HCatalog用于管理Hadoop产生的数据的表存储管理系统Hive基于HDFS的数据仓库工具可以将结构化的文件映射为一张数据库表,提供类SQL语言HiveQLHueHadoop图形界面管理工具,可以浏览文件及发出Hive/Pig指令Pig用于大数据分析工具,包含一个能产生MapReduce程序的编译器及查询语言PigLatinSqoop用于Hadoop系统与传统数据库间进行数据交换的工具ZooKeeper是一个分布式应用程序协调服务器Mahout数据挖掘算法库7.Hadoop的三种运行模式-独立(本地/单机)运行模式:无需任何守护进程,所有的程序都运行在同一个JVM上执行。在独立模式下调试MR程序非常高效方便。所以一般该模式主要是在学习或者开发阶段调试使用。-伪分布式模式:Hadoop守护进程运行在本地机器上,模拟一个小规模的集群,换句话说,可以配置一台机器的Hadoop集群,伪分布式是完全分布式的一个特例。-完全分布式模式:Hadoop守护进程运行在一个集群上。注意:所谓分布式要启动守护进程,即:使用分布式hadoop时,要先启动一些准备程序进程,然后才能使用比如start-dfs.shstart-yarn.sh。而本地模式不需要启动这些守护进程8.Hadoop集群的构成,主从节点内部各自运行的主要进程,及其作用构成:Hadoop系统由两个核心子系统和多个扩展子系统组成。主要进程:NameNode、SecondaryNameNode和JobTracker——Hadoop主节点主要进程DataNode和TaskTracker——Hadoop从节点主要进程作用:Hadoop主节点是集群的核心,负责协调和管理对所有从节点的数据访问和计算工作。NameNode:记录文件是如何分割成数据块,以及存储数据块的数据节点的信息;对内存和I/O进行集中管理。SecondaryNameNode:负责监控HDFS状态的辅助后台进程;不接受或记录任何实时的数据变化;定期与NameNode通信,并定期保存HDFS元数据的快照,从而降低由于NameNode宕机所带来的损失;可以作为备用的NameNode。JobTracker:负责将应用程序与Hadoop系统对接;确认处理文件,并为所执行任务分配指定的节点主机;负责监控所运行的任务,一旦发现某任务失败,将重启任务。Hadoop从节点担任着数据分布式存储和计算工作。DataNode:负责将HDFS数据块读写到本地文件系统;客服端直接与DataNode服务器的进程进行读/写访问。TaskTracker:与DataNode进程结合进行工作;独立管理其所在从节点上的任务进程;可以产生多个JVM进程,以并行处理多个Map和Reduce任务;与JobTracker进行定时通讯联络。9.HDFS针对硬件故障方面的设计目标是什么·整个HDFS系统可能是由数百上千或千个存储着文件数据片段的服务组成。·因此硬件故障是常态,而非异态。·故障检测和自动快速恢复是HDFS一个非常核心的设计目标。10.HDFS针对大数据集方面的设计目标是什么·运行在HDFS之上的应用程序通常具有很大量的数据集,典型的HDFS文件大小是GB到TB的级别。·因此,HDFS被设计为可支持大文件存储。·它应该能提供整体上很高的数据传输带宽,能在一个集群里扩展到数百个节点,而且还应该支持千万级别的文件。11.不适用HDFS的主要场景有哪些-将HDFS用于要求低延迟数据访问的场景·由于HDFS是为搞数据吞吐量应用而设计的,必然一高延迟为代价。-存储大量小数据文件·HDFS中元数据(文件的基本信息)存储在NameNode的内存中,而NameNode为单点进程。这样小文件数量达到一定程度时,NameNode内存就吃不消了。12.HDFS系统结构图-一个HDFS集群有一个NameNode,它的管理文件命名空间和调度客户端访问文件的主服务器。-多个DataNode,通常是一般是一个节点一个,负责管理它所在节点的存储。13.HDFS系统的主要功能组件的作用(Block,Rack,DataNode,NameNode)-Block(数据块):大文件会被分割成多个Block进行存储,Block大小默认为64MB。每一个Block会在多个DataNode上存储多个副本,默认值为3。-Rack(机架):一个Block的三个副本通常会保存在两个或者两个以上的机架中(当然是机架中的服务器),这样做的目的是做防灾容错,因为发生一个机架掉电或者一个机架的交换机故障的概率还是较高的。-DataNode:负责处理来自文件系统客户端的读/写请求,并进行数据块的读写、删除和复制。当然大部分容错机制都是在DataNode上实现的。-NameNode:负责管理文件目录、文件和Block的对应关系,以及Block和DataNode的映射关系。14.HDFS客户端执行读文件操作的工作流程当HDFS客户端执行读文件操作时:-客户端向NameNode发出打开指定文件请求;-NameNode在元数据中找到该文件与DataNode之间数据块的映射关系,并将此数据返回给客户端;-客户端按照映射关系,向指定Data№de发出读数据请求,并进而获取数据;-如果第3步出现故障,客户端将根据映射从另外的DataNode上读取同样的数据,这体现了HDFS的容错能力;-客户端向NameNode发出关闭文件请求,以结束此次文件读操作。15.HDFS客户端执行写文件操作的工作流程当HDFS客户端执行写文件操作时:-客户端向NameNode发出创建文件请求,NameNode计算出该文件与DataNode之间数据块映射关系的元数据,并将此数据返回给客户端;-客户端按照映射关系,向第一个DataNode发出写数据请求,并进而写入数据;-HDFS根据映射关系,将同样的数据块写入到另外两个DataNode主机上;-DataNode写数据块成功后,向前一个DataNode返回应答结果;-第一个DataNode将最终应答结果返回给客户端;-客户端向NameNode发出关闭文件请求,以结束此次文件写操作。16.HDFS文件操作命令的通用格式,给出创建子目录、列举文件、上传文件、查看文件、下载文件和删除文件的命令通用格式:hadoopfs|dfs-cmd[args]-cmd表示具体的操作命令-args表示命令所需的参数-创建子目录:hadoopfs-mkdir/user/trunk(在user/目录下创建trunk子目录)-列举文件:hadoopfs-ls/user(列出user/目录下所有文件和子目录r递归)-上传文件:hadoopfs-puttest.txt/user/trunk-查看文件:hadoopfs-cat/user/trunk/test.txt(查看尾部内容为-tail)-下载文件:hadoopfs-get/user/trunk/test.txt-删除文件:hadoopfs-rm/user/trunk/test.txt17.HDFS文件路径的URI格式scheme://authority/path-scheme:协议名,file或hdfs-authority:NameNode主机名+端口号-path:文件路径Eg:hdfs://winstar:9000/user/trunk/test.txt18.描述HDFS文件系统的安全模式特点和主要工作-特点:·当Hadoop启动时,NameNode首先进入安全模式,此时不会出现数据块的写操作。·安全模式下,如果DataNode丢失的数据块达到一定比例,系统会一直处于安全模式中。-主要工作·在安全模式下,NameNode会受到各个DataNode发送来的数据块列表报告。当整个系统达到安全标准时,HDFS自动离开安全模式。·若检测到副本数不足的数据块,该块会被复制到其他数据节点,以达到最小副本数。19.进入、退出、查看安全模式的命令进入:hadoopdfsadmin-safemodeenter退出:hadoopdfsadmin-safemodeleave查看:hadoopdfsadmin-safemodeget(获取安全模式是否开启的信息)hadoopdfsadmin-report(查看HDFS文件系统的基本信息和统计信息)20.列举与HDFS相关的主要Java类及其作用与HDFS相关的API位于org.apache.hadoop.fs包中。下面列出了几个常用类及其说明:-FileSystem一用于封装文件系统(包括HDFS)的基类。类中提供了创建文件、拷贝文件、删除文件、目录列表等相关文件操作的API。-FiIeStatus一用于封装文件属性信息的类,如文件长度、属主和组、最后修改时间等。-FSDataInputStream和FSDataOutputStream生一读文件流和写文件流。它们分别继承自java.io.DataInputStream和java.io.DataOutputStream-FileUtiI一文件操作的工具类,是对FiIeSystem类文件操作相关功能的补充。-Path一用于封装文件名或路径的类。21.Mapreduce处理模型和主要抽象方法-处理模型·采用“分而治之”的思想,将大规模数据集的操作分发给一个主节点管理下的多个从节点共同完成,然后通过整合各从节点的中间结果,得到最终结果。-抽象方法·map()方法:负责将任务分解为许多个子任务执行。·reduce()方法:负责将这些子任务的处理结果进行汇总.·这两个方法的具体功能由用户根据需求自行设计实现。22.Mapreduce处理的数据集的特点-待处理的数据集可以被分解为许多小数据集-每个小数据集都可以被并行处理23.Mapreduce总体处理过程图-MapReduce确定待处理的数据块数,以及每个记录在数据块中的位置;-对数据块中的所有记录执行相应的算法处理。处理数据块的每一个程序实例就是一个Mapper任务;-对每个节点Mapper任务产生的中间结果在其本地进行整合(这一步是可选的);-根据分区要求,将Mapper产生的结果划分为组;-将Mapper产生的结果整
本文标题:大数据课程复习题
链接地址:https://www.777doc.com/doc-7317630 .html