习题答案-大数据技术与应用-微课视频版-肖政宏-清华大学出版社_第1页
习题答案-大数据技术与应用-微课视频版-肖政宏-清华大学出版社_第2页
习题答案-大数据技术与应用-微课视频版-肖政宏-清华大学出版社_第3页
习题答案-大数据技术与应用-微课视频版-肖政宏-清华大学出版社_第4页
习题答案-大数据技术与应用-微课视频版-肖政宏-清华大学出版社_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

习题答案:第一章:简述大数据的概念。答:自2012年以来,“大数据”一词越来越引起人们的关注。但是,目前为止,在学术研究领域和产业界中,大数据并没有一个标准的定义。在维克托·迈尔-舍恩伯格编写的《大数据时代》一书中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。而麦肯锡全球研究所则定义大数据为一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。通常来说,大数据是指数据量超过一定大小,无法用常规的软件在规定的时间范围内进行抓取、管理和处理的数据集合。简述大数据的基本特征。大数据的主要特征可用“5V+1C”来进行概括,分别是:数据量大(Volume)、数据类型多(Variety)、数据时效性强(Velocity)、价值密度低(Value)、准确性高(Veracity)、复杂性高(Complexity),如下图所示。数据类型多数据量大价值密度低时效性高

数据类型多数据量大价值密度低时效性高图大数据特征图简述大数据的分析处理过程。答:大数据的处理流程基本可划分为数据采集、数据处理与集成、数据分析和数据解释4个阶段。即经数据源获取的数据,因为其数据结构不同(包括结构、半结构和非结构数据),用特殊方法进行数据处理和集成,将其转变为统一标准的数据格式方便以后对其进行处理;然后用合适的数据分析方法将这些数据进行处理分析,并将分析的结果利用可视化等技术展现给用户,这就是整个大数据处理的流程如下图所示。ECharlS#JS可祝化,⅛*JWfciINoSQl敬爆15:分立式文件⅛*xΓ∣ECharlS#JS可祝化,⅛*JWfciINoSQl敬爆15:分立式文件⅛*xΓ∣Λ.i⅛aDixunwntMapReduce也据互米窗图大数据的处理流程详细的分析处理过程参见《大数据技术与应用》第5章第2节4.简述大数据的存储方式。答:存储系统作为数据中心最核心的数据基础,不再仅是传统分散的、单一的底层设备。除了要具备高性能、高安全、高可靠等基于大数据应用需求,“应用定义存储”概念被提出。主要有以下几种存储方式:1、分布式系统2、NoSQL数据库3、云数据库4、大数据存储技术路线采用MPP架构的新型数据库集群基于Hadoop的技术扩展和封装大数据一体机5.简述大数据的商业价值和社会价值。答:商业价值:对顾客群体细分,然后对每个群体量体裁衣般的采取独特的行动。运用大数据模拟实境,发掘新的需求和提高利润。提高大数据成果在各相关部门的分享程度,提高企业决策能力。进行商业模式、产品和服务的创新。社会价值:.大数据可以为个人提供个性化的医疗服务。.大数据可以提供个性化教育。在大数据的支持下,教育将呈现另外 的特征:弹性学制、个性化辅导、社区和家庭学习。.大数据的诞生让社会安全管理更为井然有序。.大数据的发展带动了社会上各行各业的发展。6.以某一行业为例,简述大数据的应用。答:参见《大数据技术与应用》第1章第4节第二章:.简述大数据集群系统。答:集群技术是指通过高速通信网络将一组相互独立的计算机联系在一起,组成一个计算机系统,该系统中每一台计算机都是一个独立的服务器,运行各自的进程,它们相互之间可以通信,既可以看作是一个个单一的系统,也能够协同起来为用户提供服务。对网络用户来讲,后端就像是一个单一的系统,协同向用户提供系统资源、系统服务,通过网络连接组合成一个组合来共同完一个任务。Hadoop分布式集群是为了对海量的非结构化数据进行存储和分析而设计的一种特定的集群。其本质上是一种计算集群。详见《大数据技术与应用》第2章第1节.简述集群系统的分类。答:集群分为同构与异构两种。而按功能和结构可以分成以下几类。(1)高可用性集群。(2)负载均衡集群。(3)高性能计算集群。(4)网格计算。.简述Linux操作系统的特性。Linux操作系统是一个多用户,多任务,丰富的网络功能,它不仅有可靠的系统安全,而且良好的可移植性,具有标准的兼容性,良好的用户界面,出色的速度性能,最为重要的是开源,CentOS主要有以下特点:(1)主流:目前的Linux操作系统主要应用于生产环境,企业级主流Linux系统仍旧是RedHat或者CentOS。(2)免费:RedHat和CentOS差别不大,基于RedHatLinux提供的可自由使用源代码的企业CentOS是一个Linux发行版本。(3)更新方便:CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat那样需要花钱购买支持服务。.简述计算机虚拟化技术以及常见的虚拟化软件。答:在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可分割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。常见的虚拟化软件有VirtualBox、VMwareWorkstation、KVM。.简述大数据集群技术的架构。答:一般来说,大数据集群的构架,主要分为硬件资源层、OS层、基础设施管理层、文件系统层、大数据集群层和大数据应用层,如下图所示。K救据威M.H 1H相化展不、世表.惟荐应用)资源管理和大敬据集群层(Had)ao.Sgrk,Stortn,DretnelZDrill)并行文件系统(HDFS、IBM公司的GPFS)尊础设施管理足《罔络资调、计算机使源、HW"吩布式第雷系统)口5层ςLinux05,例如ReWiaoSUSE.Ubunw等或者Mcker)硬件资源层(HP.IBM,浪潮,中科曙光.联3)图大数据集群的架构详见《大数据技术与应用》第2章第5节6.安装Linux系统并进行网络配置。答:Linux安装环境:CentOS7.3,官网/为了简化操作,使用三台服务器作为集群节点,其中一台为Master节点,两台为Slave节点。规划集群节点IP。对集群节点进行网络配置:(1)设置主机名(2)修改/etc/hosts文件(3)修改网络配置(4)重启网络,并查看网络IP地址(5)关闭并停止NetworkManager服务详见《大数据技术与应用》第2章第6节7.部署Linux集群、设置时间同步以及免密钥SSH配置。答:一、集群规划二、网络配置(1)设置主机名(2)修改/etc/hosts文件(3)修改网络配置(4)重启网络,并查看网络IP地址(5)关闭并停止NetworkManager服务三、安全配置(1)安全密码控制(2)设置历史记录、退出自动清空历史记录等(3)设置闲置超时时间(4)设置Selinux(5)设置并停止firewalld服务四、时间同步(1)Master节点时间同步安装设置(2)Slave节点时间同步安装设置(3)设置自动加载并重启chrony服务(4)查看master节点时间同步信息(5)查看slaver节点时间同步信息五、SSH登录(1)安装openssh,开启sshd服务(2)以root用户登录master节点,生成SSH密钥对(3)把含有公用密钥文件信息复制到节点机上(4)使用SSH登录节点机详见《大数据技术与应用》第2章第6节第三章:1.简述Hadoop系统及其优点。答:Hadoop是一个能够让用户轻松架构和使用的分布式计算平台,它主要有以下几个优点:(1)高可靠性。(2)高扩展性。(3)高效性(4)高容错性。详见《大数据技术与应用》第3章第1节.简述Hadoop原理及运行机制。答:Hadoop的核心由3个子项目组成:HadoopCommon、HDFS、和MapReduce。HadoopCommon包括文件系统(FileSystem)、远程过程调用协议(RPC)和数据串行化库(SerializationLibraries)详见《大数据技术与应用》第3章第1节.简述Hadoop技术生态系统。答:Hadoop生态系统主要包括:HDFS、MapReduce、Spark、Storm、HBase、Hive、Pig、ZooKeeper、Avro、Sqoop、Ambari、

HCatalog、Chukwa、Flume、Mahout、Phoenix、Tez、Shark等,Hadoop开源技术生态系统如下图所示。安装部署工具Ambari作业流调度系统布加服务Ok分式调笋Zo布数库分式据OoziePigZ内存计算

Spark布加服务Ok分式调笋Zo布数库分式据OoziePigZ内存计算

Spark数据

库ETL

工具Sq∞p分布式计算框架

YAERN日志收集分布式存储系统 FlUmeHDFS图Hadoop开源技术生态系统.学会JDK的安装和配置。答:参见《大数据技术与应用》第3章第3节.掌握Hadoop的安装和配置。答:参见《大数据技术与应用》第3章第3节第四章.简述HDFS的体系架构。答:Hdfs架构如下图所示:图HDFS架构.简述HDFS读数据的流程。答:详细流程如下:(1)首先HDFS的客户端通过DistributedFileSystem(HDFS中API里的一个对象);(2)通过DistributedFileSystem发送给NameNode请求,同时将用户信息及文件名的信息等发送给NameNode,并返回给DistributedFileSystem,该文件包含的block所在的DataNode位置;(3)HDFS客户端通过FSDataInputStream按顺序去读取DataNode中的block信息(它会选择负载最低的或离客户端最近的一台DataNode去读block);(4)FSDataInputStream按顺序一个一个的读,直到所有的block都读取完毕;(5)当读取完毕后会将FSDataInputStream关闭。HDFS读数据的流程可如下图所示:图HDFS读流程.简述HDFS写数据的流程。答:详细流程如下:(1)首先HDFS的客户端通过DistributedFileSystem(HDFS中API里的一个对象);(2)通过DistributedFileSystem发送客户端的请求给NameNode(NameNode主要是接受客户端请求)并且会带着文件要保存的位置、文件名、操作的用户名等信息一起发送给NameNode;(3)NameNode会给客户端返回了一个FSDataOutputStream,同时也会返回文件要写入哪些DataNode上(负载较低的);(4)通过FSDataOutputStream进行写操作,在写之前就做文件的拆分,将文件拆分成多个Block,第一个写操作写在负载比较低的DataNode上,并将这个block复制到其他的DataNode上;(5)当所有的block副本复制完成后会反馈给FSDataOutputStream;(6)当所有的block副本全都复制完成,就可以将FSDataOutputStream流关闭;(7)通过DistributedFileSystem更新NameNode中的源数据信息。HDFS写数据的流程可如下图所示:图Hdfs写流程.简述Block副本的存放策略。答:在大多数情况下,副本系数是3,HDFS的存放策略是将一个副本存放在本地机架的节点上,一个副本放在同一机架的另一个节点上,最后一个副本放在不同机架的节点上。详细请参见《大数据技术与应用》4.1.4.编写程序实现对HDFS文件读写等。答:请参见《大数据技术与应用》第4章第2节第五章.简述MapReduce架构。答:MapReduce采用Master/Slave的架构,它主要由以下4个部分组成:1)Client2)JobTracker3)TaskTracker:4)Task其架构图如图所示:图TheHadoopEcosystem.简述MapReduce的工作原理。答:MapReduce框架的流程可以分为两个阶段来描述:.Map阶段(1)InputFormat根据输入文件产生键值对,并传送到Mapper类的map函数中;(2)Map输出键值对到一个没有排序的缓冲内存中;(3)当缓冲内存达到给定值或者map任务完成,在缓冲内存中的键值对就会被排序,然后输出到磁盘中的溢出文件;(4)如果有多个溢出文件,那么就会整合这些文件到一个文件中,且是排序的;(5)这些排序过的、在溢出文件中的键值对会等待Reducer的获取。.Reduce阶段(1)Reducer获取Mapper的记录,然后产生另外的键值对,最后输出到HDFS中;(2)Shuffle:相同的key被传送到同一个的Reducer中;(3)当有一个Mapper完成后,Reducer就开始获取相关数据,所有的溢出文件会被排到一个内存缓冲区中;(4)当内存缓冲区满了后,就会产生溢出文件到本地磁盘;(5)当Reducer所有相关的数据都传输完成后,所有溢出文件就会被整合和排序;(6)Reducer中的reduce方法针对每个key调用一次;(7)Reducer的输出到HDFS。.简述MapReduce的工作机制。答:一、MapReduce运行图如图所示:图Write-Ahead-Log、运行解析:.作业的提交.作业的初始化.作业的分配.任务的执行.进度和状态的更新.作业的完成三、失败解析:.任务失败2.tasktracker失败3.jobtracker失败.编写MapReduceWordCount。答:参见《大数据技术与应用》第5章第2节.实现MapReduce倒排索引编程答:参见《大数据技术与应用》第5章第2节第六章1、简述Hbase数据库

答:(1)HBase(HadoopDatabase)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。(2)HBase利用HadoopHDFS作为其文件存储系统,HBase利用HadoopMapReduce来处理HBase中的海量数据,HBase利用Zookeeper作为协同服务。(3)HBase采用Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由Client、HMaster、HRegionServer、ZooKeeper等组成。(4)HBase是基于列式存储的(5)HBase以表的形式存储数据2、简述HBase过滤器的工作过程答:如下图描述了过滤器怎样在客户端进行配置,怎样在网络传输中被序列化,怎样在服务端执行。3.RegionServer使用过滤器对Scan进行序列化,并同时使用Scan3.RegionServer使用过滤器对Scan进行序列化,并同时使用Scan和内部的扫描器图过滤器的工作过程3、学会HBase集群部署答:参见《大数据技术与应用》第6章第2节4、掌握HbaseJavaAPI编程答:参见《大数据技术与应用》第6章第5节5、掌握HBase过滤器编程答:参见《大数据技术与应用》第6章第5节第七章1、统一资源管理和调度平台的优点答:(1)支持多种计算框架HBase利用HadoopHDFS作为其文件存储系统,HBase利用HadoopMapReduce来处理HBase中的海量数据,HBase利用Zookeeper作为协同服务。(2)扩展性(3)容错性4)高资源利用率相对于第一代Hadoop,YARN把Hadoop中的资源控制、任务调度和具体任务计算的JobTracker/TaskTracker架构,变为ResourceManager、ApplicationMaster、NodeManager、Container、四个功能组件,让资源调度和任务调度更加细粒化。2、简述Yarn架构及工作流程总的来说,YARN的工作流程分为以下几个步骤:1)用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。2)ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序的ApplicationMaster。3)ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManage查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4)到7)。4)ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。5)一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。6)NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。7)各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。8)应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。YARN的工作流程如图所示:YARN的工作流程图3、学会YARNShell的操作命令答:参见《大数据技术与应用》第7章第3节第八章简述Spark开源框架及其特点。答:

Spark架构采用了分布式计算中的Master-Slave模型,Spark架构如下图所示:图8-2Spark架构图简述Spark生态系统及其主要组件。答:Spark主要包括SparkCore和在SparkCore基础之上建立的应用框架SparkSQL、SparkStreaming、MLlib和GraphX。如下图所示。图Spark生态系统除了这些库以外,还有一些其他的库,如BlinkDB和Tachyon。此外,还有一些用于与其他产品集成的适配器,如Cassandra(SparkCassandra连接器)和R(SparkR)。简述RDD的基本工作原理和特性。答:参见《大数据技术与应用》第8章第2节使用蒙特卡罗方法计算圆周率π值。答:step1:首先进入spark安装目录cd/opt/sparkStep2:提交任务命令bin/spark-submit–classorg.apache.spark.examples.SparkPi–masterspark://master:7077–executor-memory1G–total-executor-cores1examples/jars/spark-examples_2.11-2.0.2.jar10

注:10是计算的次数输出:ServerConnectorINFOINFOTNFOINFOINFOINFOINFO19:36:13IHFOscheduler.OAGScheduler:JobOfinished:reduceghly3.13895913895913919:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:13INFOINFOINFOINK)INFOINFOINIOINFOINFOINFOINFOINIOscheduler.TaskschedulerImpl:RemovedTaskSetserver.^erverConnector:handler∖contextHandler:handler.LontextHandler:handler.ContextHandler:handIer.CpntextMandler:hand!er.ContextHandler:Handler.ConfccxtHandler:hand]er.CofitextHandler:hand!er.ContextHandler:h<ιndler.ContextHandler:hand1er.ContextHandler:hand1er.Conte>⅛HandIer:handIer.ContextHandler:Handler.ContextHandler:handler.ContextHandler:hand!er.ContextHandler:hand!er.ContextHandler:handler.ContextHandler:StoppedStoppedStoppedStoppedStoppedStoppedddddddddddddeeeeeeeeeeeePpppppppppppPpppppppppppOooooooooooottttttttttttSsssssssssssServerConnectorINFOINFOTNFOINFOINFOINFOINFO19:36:13IHFOscheduler.OAGScheduler:JobOfinished:reduceghly3.13895913895913919:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:1319:36:13INFOINFOINFOINK)INFOINFOINIOINFOINFOINFOINFOINIOscheduler.TaskschedulerImpl:RemovedTaskSetserver.^erverConnector:handler∖contextHandler:handler.LontextHandler:handler.ContextHandler:handIer.CpntextMandler:hand!er.ContextHandler:Handler.ConfccxtHandler:hand]er.CofitextHandler:hand!er.ContextHandler:h<ιndler.ContextHandler:hand1er.ContextHandler:hand1er.Conte>⅛HandIer:handIer.ContextHandler:Handler.ContextHandler:handler.ContextHandler:hand!er.ContextHandler:hand!er.ContextHandler:handler.ContextHandler:StoppedStoppedStoppedStoppedStoppedStoppedddddddddddddeeeeeeeeeeeePpppppppppppPpppppppppppOooooooooooottttttttttttSsssssssssss附:1.Python源码:from__future__importprint_functionimportsysfromrandomimportrandomfromoperatorimportaddfrompyspark.sqlimportSparkSession.getOrCreate()partitions=int(sys.argv[1])iflen(sys.argv)>1else2n=100000*partitionsprint(n)deff(_):x=random()*2–1y=random()*2–1return1ifx**2+y**2<1else0count=spark.sparkContext.parallelize(range(1,n+1),partitions).map(f).reduce(add)print(count)spark.stop()1.java源码:publicfinalclassJavaSparkPi{publicstaticvoidmain(String[]args)throwsException{intslices=(args.length==1)?Integer.parseInt(args[0]):2;intn=100000*slices;List<Integer>l=newArrayList<Integer>(n);for(inti=0;i<n;i++){l.add(i);}SparkConfsparkConf=newJavaSparkContextjsc=newJavaSparkContext(sparkConf);JavaRDD<Integer>dataSet=jsc.parallelize(l,slices);intcount=dataSet.map(newFunction<Integer,Integer>(){@OverridepublicIntegercall(Integerinteger){doublex=Math.random()*2-1;doubley=Math.random()*2-1;return(x*x+y*y<1)?1:0;}}).reduce(newFunction2<Integer,Integer,Integer>(){@OverridepublicIntegercall(Integerinteger,Integerinteger2){}});returninteger+integer2;}});jsc.stop();}}使用Spark实现词频统计和相关系数计算答:参见《大数据技术与应用》第8章第3节第九章.简述机器学习的基本概念。答:机器学习是一个庞大的家族体系,涉及众多算法、任务和学习理论。详见《大数据技术与应用》第9章第1节.简述机器学习的分类。(1)按任务类型分,机器学习模型可以分为回归模型、分类模型和结构化学习模型。(2)从方法的角度分,可以分为线性模型和非线性模型,非线性模型又可以分为传统机器学习模型(SVM,KNN,决策树等)和深度学习模型。(3)按照学习理论分,机器学习模型可以分为有监督学习、半监督学习、无监督学习、迁移学习和强化学习。.MLlib的数据类型和API函数有哪些?如何使用?MLlib提供了以下数据类型:(1)Localvector(2)Labeledpoint(3)Localmatrix(4)RowMatrix(5)IndexedRowMatrix(6)CoordinateMatrix(7)BlockMatrixMLlib提供了以下API:(1)基于DataFrame的API(2)基于RDD的API详见《大数据技术与应用》第9章第2节.3种鸢尾花数据(萼片宽度、萼片长度、花瓣宽度、花瓣长度)为:(4.9,3.0,1.4,0.2)、(5.0,3.6,1.4,0.2)、(5.2,2.7,3.9,1.4)、(6.1,2.9,4.7,1.4)、(7.7,2.6,6.9,2.3)、(6.6,2.9,4.6,1.3)、(4.4,3.2,1.3,0.2)、(5.7,2.8,4.1,1.3),计算其聚类中心并将数据进行分类。答:参见《大数据技术与应用》第9章第3节.使用决策树算法对鸢尾花数据进行模型训练和预测。答:参见《大数据技术与应用》第9章第3节第十章.简述Hive的组成及执行流程。答:Hive的主要模块以及与Hadoop的交互工作如下图所示:图Hive组成模块下图显示Hive与Hadoop交互的主要组件,这些组件如下:(1)UI——包括Shell命令、JDBC/ODBC和WebUi,其中最常用的是shell这个客户端方式对Hive进行相应操作。(2)Driver——Hive解析器的核心功能就是根据用户编写的SQL语法匹配出相应的MapReduce模板,形成对应的MapReducejob进行执行。(3)Compiler——将HiveQL编译成有向无环图(DirectedAcyclicGraph,DAG)形式的MapReduce任务。(4)Metastore——Hive将表中的元数据信息存储在数据库中,如derby、MySQL,Hive中的元数据信息包括表的名字、表的列和分区、表的属性(是否为外部表等)、表的数据所在的目录等。编译器Compiler根据用户任务去MetaStore中获取需要的Hive的元数据信息。(5)ExecutionEngine——执行编译器产生的执行计划,该计划是一个有向无环图,执行引擎管理这些计划的不同阶段之间的依赖关系,并在相关组件上执行这些阶段。

6?iobDoneAP/REDUCE$SandMetaDalsEXECUTIONENGINE图Hive执行流程1ex&cuteCJuery7teteħRe⅞Λj∣6?iobDoneAP/REDUCE$SandMetaDalsEXECUTIONENGINE图Hive执行流程1ex&cuteCJuery7teteħRe⅞Λj∣ts3getMetaData61OxecuIeJobTASKTRACKERS

(REDUCE)RFDIJCFOPERATOR.比较ARRAY、MAP和STRUCT这3种数据类型的区别复杂数据类型包括ARRAY、MAP、STRUCT,这些复杂数据类型是由基础类型组成的,如下表所示:数据类型描述例子ARRAY一组有序字段。字段的类型必须相同。例如:数组A的值为[1,2],则第2个元素为A[1]。ARRAY(1,2)

MAP一组无序的键/值对。键的类型必须是原子的,值可以是任何类型,同一个映射的键的类型必须相同,值得类型也必须相同。例如:MAP数据M的键-值对'a'->1,'b'->2,则'b'的值为M['b']。MAP(‘a’,1, ‘b’,2)STRUCT一组命名的字段。字段类型可以不同。例如:name为STRUCT{firstSTRING,lastSTRING},则使用name.last引用name中last的值。STRUCT('a',1,2)表复杂数据类型.举例Hive文件格式的JSON表示答:教材中的数据以json形式表示{王可塘学士硕士公积金保险金养老金},广东省汕尾市莲塘街36号}.使用HSQL进行词频统计。答:参考《大数据技术与应用》第十章第5节.从腾讯证券下载股市行情,使用Hive进行分析。答:参见《大数据技术与应用》第十章第6节第十一章.简述ZooKeeper协调服务。分布式协调服务有Paxos、ZooKeeper、Chubby和Fourinone等。.简述ZAB协议。答:所有的事务请求必须一个全局唯一的服务器 (Leader)来协调处理,集群其余的服务器称为follower服务器。ZAB协议分为四个阶段:阶段0为leader选举,阶段1为发现,阶段2为同步,阶段3为广播。而实际实现时将发现及同步阶段合并为一个恢复阶段。ZAB协议分两大块:恢复和广播。.简述ZooKeeper事件监听器工作流程。答:ZooKeeper的Watcher机制主要包括客户端线程、客户端WatchManager和ZooKeeper服务器三部分。其工作流程:客户端在向ZooKeeper服务器注册Watcher的同时,会将Watcher对象存储在客户端的WatchManager中。当ZooKeeper服务器端触发Watcher事件后,会向客户端发送通知,客户端线程从WatchManager中取出对应的Watcher对象执行回调逻辑,如下图所示。

图Watcher工作流

温馨提示

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

评论

0/150

提交评论