版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章1.大数据的概念并没有确切的定义,合理即可,以下给出几个常见的定义:Garter公司定义“大数据”是大容量(Volume)、高流速(Velocity)、多样化(Variety)的信息资产,它需要新的数据处理形式来增强决策、提升洞察力、优化处理过程。麦肯锡全球研究所给出的定义“大数据”是一种规模大到在获取、存储、管理、分析方面远远超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。美国国家标准技术研究院给出的定义:大数据是数量大、获取速度快或形态多样的数据,难以用传统关系型数据分析方法进行有效分析,或者需要大规模的水平扩展才能高效处理。2.对于大数据的特征,学术界普遍认为是麦肯锡公司提出的4V特征,即海量化(Volume)、多样化(Variety)、快速化(Velocity)、价值密度低(Value)。(1)海量化它主要表现在处理的数量级。随着信息技术的发展,互联网规模的不断扩大,每个人的生活都被记录在了大数据之中,由此数据本身也呈爆发性增长。其中大数据的计量单位也逐渐发展,现如今对大数据的计量已达到BB。数据的存储量也正在急剧增长。、(2)多样化通常所说的数据是一个整体性的概念,按照不同的划分方式,数据可以划分成多种类型,最常用和最基本的就是利用数据关系进行划分,这种类型的多样性也让数据被分为结构化数据和非结构化数据。(3)快速化快速化是大数据区分于传统数据挖掘最显著的特征。如物联网每秒都在采集数据,微博内容随时都在更新,处理速度达到每小时10TB或更高。(4)价值密度低传统数据基本都是结构化数据,每个字段都是有用的,价值密度非常高。大数据时代,越来越多数据都是非结构化数据,比如网站访问日志,里面大量内容都是没价值的。大数据本身存在较大的价值,但是由于数据量过大,其价值往往呈现稀疏性特点。3.大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用。 数据采集是大数据分析过程中的最基本的环节,是对数据进行ETL(ExtractTransformLoad)操作的过程,通过对数据进行提取、转换、加载,最终挖掘数据的潜在价值。数据预处理就是对已接收的数据进行辨析、抽取、清洗等操作。通过预处理可以使残缺的数据完整,并将错误的数据纠正、多余的数据去除,进而将所需要的数据挑选出来,并进行数据集成。大数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。重点解决复杂结构化、非结构化大数据管理与处理技术。数据分析过程需要从复杂数据中找出规律从而获得有价值的知识,这正是大数据的价值体现。数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。大数据展现与应用技术是指大数据技术能等将隐藏于海量数据中的信息和知识挖掘出来,为人类的社会经济动提供依据,从而提高各个领域的运行效率,大大提高整个社会经济的集约化程度。4.CDO(ChiefDataOfficer)首席数据官是随着企业不断发展而诞生的一个新型的管理者。其主要是负责根据企业的业务需求、选择数据库以及数据抽取、转换和分析等工具,进行相关的数据挖掘、数据处理和分析,并且根据数据分析的结果战略性地对企业未来的业务发展和运营提供相应的建议和意见。CDO必须具备五种能力或知识:统计学和数学的知识、洞悉网络产业和发展趋势的能力、IT设备和技术选型的能力、商业运营的能力、管理和沟通的能力。 数据科学家是运用统计分析、机器学习、分布式处理等技术,从大量数据中提取出对业务有意义的信息,以易懂的形式传达给决策者,并创造出新的数据运用服务的人才。数据科学家应该具有扎实的统计学基础,统计学是当前很多数据分析和数据挖掘算法的理论基础。数据科学家应当能够熟练使用统计工具,从有组织的数据集中提取有价值的信息。成熟的数据科学家应具备四个条件是:熟悉业务的细节、掌握数据分析工具的操作、对数据价值的敏感度和对数据提炼融合的能力。 大数据开发工程师要负责数据仓库建设、ETL开发、数据分析、数据指标统计、大数据实时计算平台及业务开发、平台建设及维护等工作内容。熟练掌握数据仓库、Hadoop生态体系、计算及二次开发、大数据平台工具的开发。大数据开发工程师需要良好的数学背景,有很强的计算机编程能力,具有特定应用领域或行业的专业知识,必须深入理解大数据系统的架构,各个组件的基本原理、实现机制,甚至其中涉及的算法等。大数据运维工程师负责和参与公司大数据基础架构平台规划,运维,监控和优化工作,保障数据平台服务的稳定性和可用性;及时反馈技术处理过程中的异常情况,及时向上级反馈告警,同时主动协调资源推动问题解决;研究大数据前沿技术,改进现有系统的服务和运维架构,提升系统可靠性和可运维性;负责和参与自动化运维系统及平台的建设;负责优化部门运维流程提升运维效率。大数据系统运维工程师应熟悉Java、Python、Shell等语言;Hadoop工作原理,对HDFS、MapReduce运行过程要有深入理解,具备MapReduce开发经验,熟悉数据仓库体系架构,熟悉数据建模;熟悉至少一种RDBMS,如MySQL、Oracle、SQLServer,熟练使用SOL语言;熟悉大数据生态圈及其他技术,如HBase、Storm、Spark、Impala、Kafka、Sqoop等技术的细节。第2章一、选择题1.D2.A3.C4.A5.D6.A7.D8.D二、简答题1.Linux文件类型。2.参考vi编辑器。3.归档与压缩。4.tar命令能够对一个文件或者目录内容进行打包压缩后备份。命令格式如下:#tar[-选项][要打包的文件名或者目录名][要解压或解包的文件或者目录名]例如,现在想将/etc/passwd文件和/etc/shadow文件打包后压缩成user.tar.gz文件,可以执行如下操做:#tarczvf/home/user.tar.gz/etc/passwd/etc/shadow5.catfile1file2>>file3使用上述命令将file1和file2的文档内容合并添加到file3文档中。第3章一、填空题1.MapReduce、HDFS、YARN2.独立模式、伪分布式模式、完全分布式模式3.hdfsnamenode-format4.9870二、简答题1.虚拟机网络支持桥接、NAT和仅主机三种模式。选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上。NAT模式的虚拟机通过主机(物理机)访问互联网,交换数据。仅主机模式下,虚拟机与宿主机直连,主机系统不为虚拟机提供任何路由服务,虚拟机只能与主机通信,不能连接到实际网络,即不能访问互联网。选择NAT模式的优点是不会与其他物理主机的IP冲突,在没有路由器的环境下可以通过SSHNAT连接虚拟机进行学习,不会影响网络环境下的虚拟机IP。第4章一、填空题1.NameNode、DataNode2.NameNode、DataNode3.FsImage、EditLog4.128二、简答题1.HDFS文件写入原理:1)Client通过远程过程调用(RPC)发起文件上传请求,与NameNode建立通信。2)NameNode检查元数据文件的系统目录树。3)若系统目录树的夫目录下不存在该文件的相关信息,返回客户端可以上传文件。4)客户端请求上传第一个Block数据块以及数据块的副本数量。5)NameNod检查元数据文件中DataNode信息池,找到可用的DataNode节点。6)将可用数据节点的IP地址返回给Client。7)Cient请求第一台DataNode进行数据传输(本质为一个RPC调用,建立管道Pipeline),第一台DataNode收到请求后会调用第二台DataNode,第二台DataNode再调用第三台DataNode。8)DataNode之间建立Pipeline后,逐个返回建立完毕的信息。9)Client与DataNode建立数据传输流,开始发送数据包Packet。10)Client向第一台DataNode以Packet(默认64KB)形式上传第一个Block数据块。当第一台DataNode收到该Packet之后,会传递给第二台DataNode,第二台DataNode再传递给第三台DataNode。第一台DataNode每传送一个Packet都会放入一个应答队列等待应答。11)数据被分割成一个个Packet数据包再Pipeline上依次传输,而在Pipeline反方向上,将逐个发送Ack确认,最终由Pipeline中第一台DataNode将Pipeline的Ack信息发送给Client。12)DataNode返回给客户端,第一个Block传输完成。Client会再次请求NameNode上传后续Block。重复以上步骤,直到所有Block上传完成。2.参考4.2.2HDFS文件读取原理:1)Client向NameNode发起RPC请求,获取请求文件Block的所在位置。2)NameNode检测元数据文件,视情况返回部分Block或全部Block的信息,对于每个Block,NameNode都会返回该Block副本的DataNode地址。3)客户端会选取排序靠前的DataNode来一次读取Block,每一个Block都会进行完整性校验,若文件不完整,则客户端继续向NameNode获取下一批的Block列表,知道验证读取出来的文件是完整的,则Block读取完毕。4)Client将所有Block合并成一个完整的文件。第5章一、选择题1.A2.B3.A4.B5.D6.A二、判断题1.√2.√3.×4.√5.√三、简答题1.Hadoop是一种分布式系统的平台,通过它可以很轻松的搭建一个高效、高质量的分布系统,而且它还有许多其它的相关子项目,也就是对它的功能的极大扩充,包括Zookeeper、Hive、Hbase等。MapReduce是Hadoop的核心组件之一,Hadoop要分布式包括两部分,一部分是分布式文件系统HDFS,一部分是分布式计算框架,就是MapReduce,也就是说,可以通过MapReduce很容易在Hadoop平台上进行分布式的计算编程。2.Map函数的输入是来自于分布式文件系统的文件块,这些文件块的格式是任意的,可以是文档,也可以是二进制格式。文件块是一系列元素的集合,这些元素是任意类型的,同一个元素不能跨文件块存储。Map函数将输入的元素转换成<key,value形式的键值对,键和值的类型也是任意的,其中,键不同于一般的标志属性,即键没有唯一性,不能作为输出的身份标识,即使是同一输入元素,也可通过一个Map任务生成具有相同键的多个<key,value>。Reduce函数的任务就是将输入的一系列具有相同键的键值对以某种方式组合起来,输出处理后的键值对,输出结果会合并成一个文件。用户可以指定Reduce任务的个数(如n个),并通知实现系统,然后主控进程通常会选择一个Hash函数,Map任务输出的每个键都会经过Hash函数计算,并根据哈希结果将该键值对输入相应的Reduce任务来处理。对于处理键为k的Reduce任务的输入形式为<k,<v1,v2.……vn>>,输出为<k,v>。3.Shuffle过程主要包括Map端和Reduce端的Shuffle过程:1)Map端的Shuffle过程在Map端,经过map任务处理后的数据(一系列<k,v>键值对),首先进入缓存,当缓存的数据到达一定容量(缓存空间的溢写比)的时候,就会启动Map端的溢写过程,把map任务的输出结果溢写到磁盘里。在溢写到磁盘之前,会经历Map端的Shuffle处理阶段:分区、排序、合并,在溢写到磁盘之后,多个溢写文件会经历归并过程。值得一提的是,Mapreduce的输入和输出都是保存到分布式文件系统中的,而中间结果是保存到本地磁盘中的(而这一点也成为了Mapreduce速度上的鸡肋),所以Shuffle过程会涉及大量的本地磁盘操作。①分区数据缓存中每个经由map任务处理后的输出键值对<k,v>中的key被哈希函数哈希后再用reduce任务的数量进行取模,这样就把一系列<k,y>键值对分成多个区(分区数目对应reduce任务数量),每个区的数据交给对应的reduce(一个溢写文件的一个区对应一个reduce任务)去处理,实现并行计算。②排序数据经过分区后的数据,对于每个分区的所有键值对,会按照key进行排序。缓存数据经过分区和排序后,就会被溢写到磁盘,每一次溢写都会被生成一个溢写文件,并清空缓存中相应的数据。③归并文件每一次溢写都会被生成一个溢写文件,这样随着map任务的不断执行,溢写的文件会在磁盘内越堆越多,由此,在map任务完成后,会对磁盘中的溢写文件执行文件归并,把多个溢写文件归并成一个大的溢写文件。2)Reduce端的Shuffle过程①领取数据当所有的map任务都完成之后,Reduce端会收到通知去Map端上把属于自己处理的分区数据领取回来,由于存在多个Map端,自然Reduce端会分出多个线程去不同的Map端上领取数据。②归并数据和文件当所有数据领取回来之后,会先放到缓存里,当缓存的数据满了之后,再溢写到磁盘上,在溢写到磁盘之前也会对数据进行一遍归并操作,即同样key的数据会被归并生成一个溢写文件,这样随着Reduce拉取回来的数据不断增多,缓冲区满了一遍又一遍,自然会生成多个溢写文件。当Map端的数据全部被领回来的时候,磁盘中的溢写文件也会被归并成大的溢写文件。把磁盘上的多个溢写文件归并成大的溢写文件,可能需要执行多轮归并,每轮归并操作可以归并的文件数量是由参数io.sort.factor的值控制的(默认是10),假设磁盘产生了50个溢写文件,每轮可以归并10个溢写文件,则需要经过5轮归并,生成5个溢写文件。磁盘中经过多轮归并生成的若干个文件不会被继续归并成一个大文件,而是在内存中进行归并,归并完毕后输入给reduce任务,这样可以减少磁盘读写开销。4.答案如下图所示:
第6章一、选择题1.A2.B3.D4.D5.AC6.AB7.ABCD8.ABCD二、判断题1.√2.×3.√4.×5.√6.×7.√8.√三、简答题1.ZooKeeper是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调服务。分布式应用程序可以基于ZooKeeper实现数据发布与订阅、负载均衡、命名服务、分布式协调与通知、集群管理、Leader选举、分布式锁、分布式队列等功能。2.①leader:Leader能为客户端提供读和写服务,Leader服务器是整个集群工作机制的核心;事务请求的唯一调度者和处理者,保证集群事务处理的顺序性。②follower:拥有选举权,拥有投票权,接受客户端的访问;如果客户端执行写请求,只是将请求转发给Leader。③Observer:和follower功能一致,但是不参与leader选举;只可以为客户端提供数据的查询和访问;如果客户端执行写请求,只是将请求转发给Leader。3.version:当前ZNode版本cversion:当前ZNode子节点版本aversion:当前ZNode的ACL版本4.①PERSISTENT-持久节点除非手动删除,否则节点一直存在于ZooKeeper上。②EPHEMERAL-临时节点临时节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与ZooKeeper连接断开不一定会话失效),那么这个客户端创建的所有临时节点都会被移除。③PERSISTENT_SEQUENTIAL-持久顺序节点基本特性同持久节点,只是增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。④EPHEMERAL_SEQUENTIAL-临时顺序节点基本特性同临时节点,增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。5.ZooKeeper采用了递增的事务Id来标识,所有的proposal(提议)都在被提出的时候加上了zxid,zxid实际上是一个64位的数字,高32位是epoch(时期;纪元;世;新时代)用来标识leader是否发生改变,如果有新的leader产生出来,epoch会自增,低32位用来递增计数。当新产生proposal的时候,会依据数据库的两阶段过程,首先会向其他的server发出事务执行请求,如果超过半数的机器都能执行并且能够成功,那么就会开始执行。6.不是。一个watch事件是一个一次性的触发器,当被设置了watch的数据发生了改变的时候,则服务器将这个改变发送给设置了watch的客户端,以便通知它们。例如:如果服务端变动频繁,而监听的客户端很多情况下,每次变动都要通知到所有的客户端,给网络和服务器造成很大压力。一般是客户端执行getData(“/节点A”,true),如果节点A发生了变更或删除,客户端会得到它的watch事件,但是在之后节点A又发生了变更,而客户端又没有设置watch事件,就不再给客户端发送。在实际应用中,很多情况下,我们的客户端不需要知道服务端的每一次变动,我只要最新的数据即可。7.ZooKeeper本身也是集群,推荐配置不少于3个服务器。ZooKeeper自身也要保证当一个节点宕机时,其他节点会继续提供服务。如果是一个Follower宕机,还有2台服务器提供访问,因为ZooKeeper上的数据是有多个副本的,数据并不会丢失;如果是一个Leader宕机,ZooKeeper会选举出新的Leader。ZK集群的机制是只要超过半数的节点正常,集群就能正常提供服务。只有在ZK节点挂得太多,只剩一半或不到一半节点能工作,集群才失效。所以3个节点的cluster可以挂掉1个节点(leader可以得到2票>1.5)2个节点的cluster就不能挂掉任何1个节点了(leader可以得到1票<=1)。8.ZooKeeper是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。通过对ZooKeeper中丰富的数据节点进行交叉使用,配合watcher事件通知机制,可以非常方便的构建一系列分布式应用中年都会涉及的核心功能,如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁、分布式队列。第7章一、选择题1.D2.DE3.ABC二、判断题1.√2.√3.×4.√三、简答题1.YARN的基本组成ResourceManager:一个集群资源调度的管理者。NodeManager:一个节点资源调度的管理者(集群各个节点资源的工作者)。ApplicationMaster:一个计算任务的管理者。Container:容器(cpu和内存)。2.基本原理:按照先后顺序决定资源的使用,资源优先满足最先来的job。第一个job优先获取所有可用的资源,接下来第二个job再获取剩余资源。以此类推,如果第一个job没有占用所有的资源,那么第二个job还可以继续获取剩余资源,这样多个job可以并行运行,如果第一个job很大,占用所有资源,则第二job就需要等待,等到第一job释放所有资源。3.YARN的三种调度方式FIFOScheduler:先进先出器(先来后到的顺序)。CapacityScheduler:容量调度器。FairScheduler:公平调度器。第8章1.回顾HDFS,说明HDFS和HBase的关系。1)HBase管理的文件多存储在HDFS上;2)二者均具有良好的扩展性和容错性;2.说明HDFS和HBase的区别。1)HDFS是一个分布式文件系统,适合大量数据的批量处理,但不支持随机查找和数据更新,不适合增量数据处理;2)HBase是建立在HDFS之上的数据库,支持数据随机查询和读写,延迟低。第9章1.未被external修饰的是内部表,被external修饰的为外部表。内部表数据由Hive自身管理,外部表数据由HDFS管理。内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里);删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除。2.Hive支持索引(3.0版本之前),但是Hive的索引与关系型数据库中的索引并不相同。并且Hive索引提供的功能很有限,效率也并不高,因此Hive索引很少使用。索引适用的场景:适用于不更新的静态字段。以免总是重建索引数据。每次建立、更新数据后,都要重建索引以构建索引表。3.Orderby:会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)。只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。Sortby:不是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购合同预付款的税务筹划技巧3篇
- 采购合同中的工程质量控制3篇
- 采购合同管理的挑战与应对3篇
- 采购合同预付款的信用评估方法3篇
- 采购合同类型的选择技巧3篇
- 2024年智能家居系统研发与推广合同3篇
- 2024年政府间农业现代化借款合同3篇
- 2024年国内货物运输意外保险服务合同3篇
- 股权转让要签署合同(2025年)
- 2024品牌形象设计策划与品牌价值提升合同5篇
- 常见急救知识培训课件
- 红色国风喜迎元旦介绍宣传PPT教学课件
- 领导干部廉政知识竞赛题库及答案
- 降低锐器盒不规肾内科品管圈课件
- 《了凡四训》课件
- 2ttk7d6.0gd空调装置使用维护说明书法补充
- 重大火灾隐患判定培训课件
- 经济思想史课后习题答案
- 大学生就业与创业指导课件
- 如何理解欧盟MDR临床评价要求
- (新平台)国家开放大学《政治学原理》形考任务1-4参考答案
评论
0/150
提交评论