当前位置: 首页 > news >正文

用iis做的网站怎么更改端口深圳网站网站建设

用iis做的网站怎么更改端口,深圳网站网站建设,淮安做微信网站,赣州信息港官网1.6大数据计算模式 1、MapReduce可以并行执行大规模数据处理任务#xff0c;用于大规模数据集#xff08;大于1TB#xff09;的并行运算。MapReduce 极大地方便了分布式编程工作#xff0c;它将复杂的、运行于大规模集群上的并行计算过程高度地抽象为两个函数一一Map和Redu…1.6大数据计算模式 1、MapReduce可以并行执行大规模数据处理任务用于大规模数据集大于1TB的并行运算。MapReduce 极大地方便了分布式编程工作它将复杂的、运行于大规模集群上的并行计算过程高度地抽象为两个函数一一Map和Reduce编程人员在不会分布式并行编程的情况下也可以很容易地将自己的程序运行在分布式系统上完成海量数据集的计算。 2、Spark是一个针对超大数据集合的低延迟的集群分布式计算系统比MapReduce快许多。Spark启用了内存分布数据集除了能够提供交互式查询外还可以优化迭代工作负载。在 MapReduce中数据流从一个稳定的来源进行一系列加工处理后流出到一个稳定的文件系统(如 HDFS )。而Spark 使用内存替代HDFS 或本地磁盘来存储中间结果因此 Spark 要比 MapReduce 的速度快许多。 1、在大数据的计算模式中流计算解决的是什么问题 A、 针对大规模数据的批量处理 B、 针对大规模图结构数据的处理 C、 大规模数据的存储管理和查询分析 D、 针对流数据的实时计算 2.2Hadoop生态系统 两大核心HDFS、MapReduce 其他ZookeeperHBaseHivePigMahoutFlumeSqoopAmbari 1、HDFS Hadoop分布式文件系统HDFS是Hadoop的两大核心之一是针对谷歌文件系统的开源实现。 优点处理超大数据、流式处理、可运行在廉价服务器上 以流的形式访问文件系统中的数据HDFS 在访问应用程序数据时可以具有很高的吞吐率因此对于超大数据集的应用程序而言选择 HDFS作为底层数据存储系统是较好的选择。 2、HBase 特点提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库采用HDFS作为底层数据存储系统。 HBase 与传统关系数据库的一个重要区别是前者采用基于列的存储后者采用基于行的存储。HBase 具有良好的横向扩展能力可以通过不增加廉价的商用服务器来提高存储能力。 3、MapReduce Hadoop分布式并行编程模型MapReduce是针对谷歌MapReduce的开源实现 抽象为两个函数Map和Reduce MapReduce可以并行执行大规模数据处理任务用于大规模数据集大于1TB的并行运算。MapReduce 极大地方便了分布式编程工作它将复杂的、运行于大规模集群上的并行计算过程高度地抽象为两个函数一一Map和Reduce并且允许用户在不了解分布式系统底层细节情况下开发并行应用程序并将其运行于廉价的计算机集群上完成海量数据的处理。 “分而治之”它把输人的数据集切分为若干独立的数据块分发给一个主节点管理下的各个分节点来共同并行完成;最后通过整合各个节点的中间结果得到最终结果。 4、Hive 基于Hadoop的数据仓库工具用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储 提供类似于SQL的查询语言——HiveQLHive自身可以转化为MapReduce任务因而高效。 5、Pig 数据流语言和运行环境适合于使用Hadoop 和MapReduce 平台来查询大型半结构化数据集。简化了Hadoop的常见工作任务在MapReduce的基础上创建了更简单抽象的脚本语言当我们需要从大型数据集中搜索满足某个给定搜索条件的记录时采用 Pig 要比MapReduce 具有明显的优势 6、Mahout 提供可扩展的机器学习领域经典算法的实现旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout 包含许多实现如聚类分类、推荐过滤、频繁子项挖掘等。此外通过使用 Apache Hadoop 库Mahout 可以有效地扩展到云中。 7、Zookeeper 针对谷歌Chubby的开源实现主要用于协调数据处理很多事情都要用到它。 是高效和可靠的协同工作系统提供分布式锁之类的基本服务(如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等)用于构建分布式应用减轻分布式应用程序所承担的协调任务。ZooKeeper 使用 Java编写。 8、Flume 一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。 9、Sqoop SQL to Hadoop的缩写主要用来在 Hadoop 和关系数据库之间交换数据可以改进数据的互操作性。可以将数据从传统关系数据库中导入hadoop。 10、Ambari 一种基于Web的工具支持Apache Hadoop 集群的安装、部署、配置和管理。 2、Hadoop 框架中最核心的设计是什么? (A)为海量数据提供存储的 HDFS 和对数据进行计算的 MapReduce (B)提供整个 HDFS 文件系统的 NameSpace(命名空间)管理、块管理等所有服务 (C) Hadoop 不仅可以运行在企业内部的集群中也可以运行在云计尊环境中 (D)Hadoop 被视为事实上的大数据处理标准 3.3HDFS的相关概念 1、块概念HDFS默认一个块大小64MB在 HDFS 中的文件会被拆分多个块、每个块作为独立的单元进行存储。 2、采用块存储的好处 1支持大规模文件存储文件以块为单位进行存储大规模文件被拆成若干文件块发送到不同节点。 2简化系统设计简化了存储管理方便了元数据的管理元数据不需要和文件块一起存储可以由其他系统负责管理元数据 3适合数据备份每个文件块都被冗余存储到多个节点上冗余存储将数据在多个地方同时存储大大提高了系统的容错性和可用性。 3、名称节点 名称节点NameNode负责管理分布式文件系统命名空间Namespace存储元数据记录数据的数据。保存了两个核心的数据结构即FsImage和EditLog。 FsImage维护文件系统树以及文件树中所有的文件和文件夹的元数据描述数据的数据 FsImage文件包含文件系统所有目录和文件的innode序列化形式。即元数据 FsImage文件没有记录每个块存储在哪个数据节点。由名称节点存储 EditLog操作日志文件记录了所有针对文件的创建、删除、重命名等操作。 名称节点的启动将FsImage文件加载到内存中再执行EditLog文件的各项操作。一旦在内存中成功建立元数据的映射则创建一个新的FsImage文件和一个空的EditLog文件。 名称节点启动后文件元数据的更新操作会写到EditLog而不是FsImage中这是因为FsImage比EditLog大得多。 EditLog不断变大的问题HDFS的更新操作直接写入EditLog会造成其不断变大。当EditLog文件非常大的时候会导致名称节点启动操作非常慢而在这段时间内HDFS系统处于安全模式一直无法对外提供写操作影响了用户的使用 如何解决EditLog不断变大带来的问题SecondaryNameNode 第二名称节点 第二名称节点是HDFS架构中的一个组成部分用来保存名称节点中对HDFS元数据信息的备份减少名称节点重启的时间。一般是单独运行在一台机器上。 SecondaryNameNode第二名称节点工作流程 1定期和NameNode通信请求其停止使用EditLog文件暂时将新的写操作写到一个新的文件EditLog.new上来这个操作是瞬间完成上层写日志的函数完全感觉不到差别 2通过HTTPGET方式从NameNode上获取到FsImage和EditLog文件并下载到本地的相应目录下 3EditLog和FsImage文件合并将下载下来的FsImage载入到内存然后一条一条地执行EditLog文件中的各项更新操作使FsImage保持最新 4执行完3之后会通过post方式将新的FsImage文件发送到NameNode节点上 5NameNode将从SecondaryNameNode接收到的新的FsImage替换旧的FsImage文件同时将EditLog.new替换EditLog文件通过这个过程EditLog就变小了 4、数据结点 数据节点DataNode是分布式文件系统HDFS的工作节点负责数据的存储和读取 根据客户或名称节点的调度进行数据的存储和检索并且向名称节点定期发送自己所存储的块的列表 每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中 1、在一个基本的 Hadoop 集群中DataNode 主要负责什么 A、 存储被拆分的数据块 B、 协调数据计算任务 C、 负责协调集群中的数据存储 D、 负责执行由 JobTracker 指派的任务 2、在 HDFS 中NameNode 的主要功能是什么 A、 存储元数据 B、 存储文件内容 C、 文件内存保存在磁盘中 D、 维护了 block id 到 datanode 本地文件的映射关系 3、在一个基本的 Hadoop 集群中SecondaryNameNode 主要负责什么 A、 帮助 NameNode 收集文件系统运行的状态信息 B、 负责执行由 JobTracker 指派的任务 C、 协调数据计算任务 D、 负责协调集群中的数据存储 4、一个基本的 Hadoop 集群中的节点主要包括什么 A、 DataNode存储被拆分的数据块 B、 JobTracker协调数据计算任务 C、 TaskTracker负责执行由 JobTracker 指派的任务 D、 SecondaryNameNode帮助 NameNode 收集文件系统运行的状态信息 5、在 HDFS 中默认一个块多大 A、 64MB     B、 32MB      C、 128MB      D、 16MB 6、下面对FsImage的描述,哪个是错误的? A、FsImage文件没有记录每个块存储在哪个数据节点 B、FsImage文件包含文件系统中所有目录和文件inode的序列化形式 C、FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据 D、FsImage文件记录了每个块具体被存储在哪个数据节点 7、下面对 SecondaryNameNode 第二名称节点的描述哪个是错误的 A、 SecondaryNameNode 一般是并行运行在多台机器上 B、 它是用来保存名称节点中对 HDFS 元数据信息的备份并减少名称节点重启的时间 C、 SecondaryNameNode 通过 HTTPGET 方式从 NameNode 上获取到 FsImage 和EditLog 文件并下载到本地的相应目录下 D、 SecondaryNameNode 是 HDFS 架构中的一个组成部分 8、在 HDFS 中名称节点NameNode主要保存了哪些核心的数据结构 A、 FsImage   B、 EditLog     C、 Block     D、 DN8 9、数据节点DataNode的主要功能包括哪些 A、 负责数据的存储和读取 B、 根据客户端或者是名称节点的调度来进行数据的存储和检索 C、 向名称节点定期发送自己所存储的块的列表 D、 用来保存名称节点中对 HDFS 元数据信息的备份并减少名称节点重启的时间 3.5HDFS的存储原理 1、数据的冗余存储作为一个分布式文件系统为了保证系统的容错性和可用性HDFS采用了多副本方式对数据进行冗余存储通常一个数据块的多个副本会被分布到不同的数据节点上具有以下优点 1加快数据传输速度 2容易检查数据错误 3保证数据可靠性 2、数据存取策略 数据存放 为了提高数据的可靠性与系统的可用性以及充分利用网络带宽HDFS采用了以机架Rack为基础的数据存放策略。 HDFS默每个数据节点都在不同的机架上。 默认冗余复制因子是3每一个文件块会被同时保存到3个地方其中有两个副本放在同一个机架的不同机器上面第3个副本放在不同机架的机器上面这样既可以保证机架发生异常时的数据恢复也可以提高数据读写性能。 客户端指定或随机挑选——与上一个不同的机架上——与第一个相同的机架上不同节点上 第一个副本如果是在集群内发起写操作请求则把第1个副本放置在发起写操作请求的数据节点上实现就近写人数据如果是集群外提交则随机挑选一台磁盘不太满、CPU不太忙的节点第二个副本放置在与第一个副本不同的机架的数据节点上第三个副本与第一个副本相同机架的其他节点上更多副本随机数据节点 数据读取 HDFS提供了一个API可以确定一个数据节点所属的机架ID客户端也可以调用API获取自己所属的机架ID。 当客户端读取数据时从名称节点获得数据块不同副本的存放位置列表列表中包含了副本所在的数据节点可以调用API来确定客户端和这些数据节点所属的机架ID当发现某个数据块副本对应的机架ID和客户端对应的机架ID相同时就优先选择该副本读取数据如果没有发现就随机选择一个副本读取数据。 优先选择与客户端同一机架内的数据副本进行读取除此以外再随机选择副本读取。 3、数据错误与修复 名称节点出错名称节点保存了所有的元数据信息HDFS设置备份机制将核心元数据信息赋值备份到SecondaryNameNode上 数据节点出错数据节点故障时会标记成“宕机”副本数量小于冗余因子时启动数据冗余复制生成新的副本。HDFS和其它分布式文件系统的最大区别就是可以调整冗余数据的位置。 每个数据节点会定期向名称节点发送“心跳”信息向名称节点报告自己的状态当数据节点发生故障或者网络发生断网时名称节点就无法收到来自一些数据节点的心跳信息这时这些数据节点就会被标记为“宕机”节点上面的所有数据都会被标记为“不可读”名称节点不会再给它们发送任何I/O请求这时有可能出现一种情形即由于一些数据节点的不可用会导致一些数据块的副本数量小于冗余因子名称节点会定期检查这种情况一旦发现某个数据块的副本数量小于冗余因子就会启动数据冗余复制为它生成新的副本HDFS和其它分布式文件系统的最大区别就是可以调整冗余数据的位置 数据出错网络传输和磁盘错误等因素造成数据错误。HDFS有一套机制来修复 客户端在读取到数据后会采用md5和sha1对数据块进行校验以确定读取到正确的数据在文件被创建时客户端就会对每一个文件块进行信息摘录并把这些信息写入到同一个路径的隐藏文件里面当客户端读取文件的时候会先读取该信息文件然后利用该信息文件对每个读取的数据块进行校验如果校验出错客户端就会请求到另外一个数据节点读取该文件块并且向名称节点报告这个文件块有错误名称节点会定期检查并且重新复制这个块 1、HDFS 数据块多副本存储具备以下哪些有点 A、 加快数据传输速度 B、 容易检查数据错误 C、 保证数据可靠性 D、 适合多平台上运行 2、HDFS 具有较高的容错性设计了哪些相应的机制检测数据错误和进行自动 恢复 A、 名称节点出错 B、 数据节点出错 C、 数据出错 D、 数据源太大 3.7.1HDFS常用命令 在 Linux 终端窗口我们可以利用 Shell 命令对 Hadoop 进行操作。利用这些命令可以完成HDFS 中文档的上传、下载、复制、查看文件信息、格式化名称节点等操作。关于HDFS 的 Shell命令有一个统一的格式: hadoop  command  [genericOptions]  [commandOptions] HDFS 有很多命令其中fs 命令可以说是 HDFS 最常用的命令利用s 命令可以查看 HDFS的目录结构、上传和下载数据、创建文件等。该命令的用法如下: hadoop  fs  [genericOptions]  [commandOptions] 具体如下。 hadoop fs -ls path。显示path指定的文件的详细信息hadoop fs -ls -R path。Is 命令的递归版本。hadoop fs-cat path。将path指定的文件的内容输出到标准输出(stdout)。hadoop fs -chgrp [-R] group path。将path指定的文件所属的组改为 group使用-R对path指定的文件夹内的文件进行递归操作。这个命令只适用于超级用户。hadoop fs -chown [-R][owner][: [group]] path。改变path指定的文件所有者-R 用于递归改变文件夹内的文件所有者。这个命令只适用于超级用户。hadoop fs -chmod[-R]mode path。将path指定的文件的权限更改为mode。这个命令只适用于超级用户和文件所有者。hadoop fs -tail[-f] path。将path指定的文件最后1KB 的内容输出到标准输出(stdout)上-f选项用于持续检测新添加到文件中的内容。hadoop fs -stat[format] path。以指定的格式返回path指定的文件的相关信息。当不指定format的时候返回文件path的创建日期。hadoop fs -touchz path。创建一个path指定的空文件。hadoop fs -mkdir [-p]paths。创建paths指定的一个或多个文件夹p 选项用于递归创建子文件夹。hadoop fs -copyFromLocal localsrcds。将本地源文件localsrc复制到路径dst指定的文件或文件夹皎哎财癌拆稗绊癌毕爱笨伴拜暗搬摆hadoop fs -copyToLocal [-ignorecrc][-crc]target localds。将目标文件target复制到本地文件或文件夹localds中可用-ignorecrc 选项复制 CRC 校验失败的文件使用-crc 选项复制文件以及CRC信息。hadoop fs -cp src ds。将文件从源路径src复制到目标路径dstohadoop fs-du path。显示path指定的文件或文件夹中所有文件的大小hadoop fs-expunge。清空回收站请参考HDFS 官方文档以获取更多关于回收站特性的信息。hadoop fs -get [-ignorecrc][-crc] src localdst。复制src指定的文件到本地文件系统localds指定的文件或文件夹可用-igorecrc 选项复制CRC校验失败的文件使用-crc 选项复制文件以及 CRC信息。hadoop fs -getmerge [-nl] src localdst。对src指定的源目录中的所有文件进行合并写人localds指定的本地文件。-nl 是可选的用于指定在每个文件结尾添加一个换行符。hadoop fs -put localsrc dst。从本地文件系统中复制localsrc指定的单个或多个源文件到dst指定的目标文件系统中也支持从标准输人(stdin)中读取输入并写人目标文件系统。hadoop fs -moveFromLocallocalsrc dst。与 put 命令功能相同但是文件上传结束后会从本地文件系统中删除localsrc指定的文件。hadoop fs-v src dest。将文件从源路径src移动到目标路径dsthadoopfs -rm path。删除path指定的文件只删除非空目录和文件。hadoop fs -rm -r path。删除path指定的文件夹及其下的所有文件-r 选项表示递归删除子目录。hadoop fs -setrep [-R]path。改变path指定的文件的副本系数-选项用于递归改变目录下所有文件的副本系数。hadoop fs -test-[ezd]path。检查path指定的文件或文件夹的相关信息。不同选项的作用如下。e检查文件是否存在如果存在则返回 0否则返回1。z检查文件是否是0字节如果是则返回0否则返回1③-d 如果路径是个目录则返回1否则返回0。hadoopfs-textpath。将path指定的文件输出为文本格式文件的格式也允许是zip和TextRecordInputStream 等。 1、启动hadoop所有进程的命令是: A.  start-dfs.sh B.  start-all.sh C.  start-hadoop.sh D.  start-hdfs.sh 2、以下哪个命令可以用来操作HDFS文件: A.  hadoop fs B.  hadoop dfs C.  hdfs fs D.  hdfs dfs 4.1分布式数据库HBase概述 1、BigTable BigTable是分布式存储系统起初用于解决典型问题的互联网搜索问题。 建立互联网索引 爬虫持续不断地抓取新页面这些页面每页一行地存储到BigTable里MapReduce计算作业运行在整张表上生成索引为网络搜索应用做准备 搜索互联网 用户发起网络搜索请求网络搜索应用查询建立好的索引从BigTable得到网页搜索结果提交给用户 BigTable是一个分布式存储系统 利用谷歌的MapReduce分布式并行计算模型来处理海量数据 利用谷歌分布式文件系统GFS作为底层数据存储 采用Chubby提供协同服务管理 可扩展到PB级别和上千台机器具有广泛应用性、可扩展性、高性能和高可用性 谷歌的许多项目都在BigTable中 总的来说BigTable 具备以下特性支持大规模海量数据分布式并发数据处理效率极高易于扩展且支持动态伸缩适用于廉价设备适合读操作不适合写操作。 2、HBase HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库具有低延迟的特点是BigTable的开源实现主要用来存储非结构化和半结构化的松散数据。 目标处理非常庞大的表通过水平扩展的方式利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表 传统关系数据库已经流行很多年并且Hadoop已经有了HDFS和MapReduce为什么需要HBase 传统关系数据库无法应对数据量剧增时导致的性能问题HDFS面向批量访问模式不是随机访问模式HBase可以通过索引直接访问传统关系数据库可扩展性差传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能问题传统关系数据库在数据结构变化时一般需要停机维护空列浪费存储空间 因此业界出现了一类面向半结构化数据存储和处理的高可扩展、低写入/查询延迟的系统例如键值数据库、文档数据库和列族数据库如BigTable和HBase等 HBase已经成功应用于互联网服务领域和传统行业的众多在线式数据分析处理系统中 HBase与传统的关系数据库的区别主要体现在以下几个方面 数据类型关系数据库采用关系模型具有丰富的数据类型和存储方式HBase则采用了更加简单的数据模型它把数据存储为未经解释的字符串用户可以把不同格式的结构化数据和非结构数据都序列化成字符串保存到HBase中数据操作关系数据库中包含了丰富的操作如插入、删除、更新、查询等其中会涉及复杂的多表连接借助主外键关联来实现。HBase操作则不存在复杂的表与表之间的关系只有简单的插入、查询、删除、清空等因为HBase在设计上就避免了复杂的表和表之间的关系通常只采用单表的主键查询所以它无法实现像关系数据库中那样的表与表之间的连接操作。存储模式关系数据库是基于行模式存储的。HBase是基于列存储的每个列族都由几个文件保存不同列族的文件是分离的它的优点是:可以降低I/0开销支持大量并发用户查询(因为仅需要处理可以回答这些查询的列而不需要处理与查询无关的大量数据行 );同一个列族中的数据会被一起压缩(由于同一列族内的数据相似度较高因此可以获得较高的数据压缩比)。数据索引关系数据库通常可以针对不同列构建复杂的多个索引以提高数据访问性能。HBase只有一个索引——行键通过巧妙的设计HBase中的所有访问方法或者通过行键访问或者通过行键扫描从而使得整个系统不会慢下来。由于 HBase 位于Hadoop 框架之上因此可以使用 Hadoop MapReduce 来快速、高效地生成索引表。数据维护在关系数据库中更新操作会用最新的当前值去替换记录中原来的旧值旧值被覆盖后就不会存在。而在HBase中执行更新操作时并不会删除数据旧的版本而是生成一个新的版本旧有的版本仍然保留可伸缩性关系数据库很难实现横向扩展纵向扩展的空间也比较有限。相反HBase和BigTable这些分布式数据库就是为了实现灵活的水平扩展而开发的能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩 但是相对关系数据库HBase 也有自身的局限性如 HBase 不支持事务因此无法实现跨行的原子性。 1、下列关于 BigTable 的描述哪个是错误的 A、 爬虫持续不断地抓取新页面这些页面每隔一段时间地存储到 BigTable 里 B、 BigTable 是一个分布式存储系统 C、 BigTable 起初用于解决典型的互联网搜索问题 D、 网络搜索应用查询建立好的索引从 BigTable 得到网页 2、下列选项中关于 HBase 和 BigTable 的底层技术对应关系哪个是错误的 A、 GFS 与 Zookeeper B、 GFS 与 HDFS C、 MapReduce 与 Hadoop MapReduce D、 Chubby 与 Zookeeper 3、在 HBase 中关于数据操作的描述下列哪一项是错误的 A、 HBase 则采用了更加简单的数据模型它把数据存储为未经解释的字符串 B、 HBase 操作不存在复杂的表与表之间的关系 C、 HBase 操作只有简单的插入、查询、删除、清空等 D、 HBase 在设计上就避免了复杂的表和表之间的关系 4、在 HBase 访问接口中Pig 主要用在哪个场合 A、 适合做数据统计 B、 适合 HBase 管理使用 C、 适合其他异构系统在线访问 HBase 表数据 D、 适合 Hadoop MapReduce 作业并行批处理 HBase 表数据 5、关系数据库已经流行很多年并且 Hadoop 已经有了 HDFS 和 MapReduce 为什么需要 HBase A、 Hadoop 可以很好地解决大规模数据的离线批量处理问题但是受限于 Hadoop MapReduce 编程框架的高延迟数据处理机制使得 Hadoop 无法满足大 规模数据实时处理应用的需求上 B、 HDFS 面向批量访问模式不是随机访问模式 C、 传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和 性能问题 D、 传统关系数据库在数据结构变化时一般需要停机维护空列浪费存储空间  6、HBase 与传统的关系数据库的区别主要体现在以下哪几个方面 A、 数据类型 B、 数据操作 C、 存储模式 D、 数据维护 4.3HBase数据模型 1、数据模型概述 HBase是一个稀疏、多维度、排序的映射表表的索引是行键、列族、列限定符和时间戳用户在表中存储数据每一行都有一个可排序的行键和任意多的列表在水平方向由一个或者多个列族组成一个列族中可以包含任意多个列同一个列族里面的数据存储在一起表由行和列组成行由行键来标识列划分为若干个列族列族里面有任意多个列列由列限定符来定位。单元格由行、列族和列限定符和时间戳四者共同确定每个值是一个未经解释的字符串没有数据类型列族支持动态扩展可以很轻松地添加一个列族或列无需预先定义列的数量以及类型所有列均以字符串形式存储用户需要自行进行数据类型转换执行更新操作时并不会删除旧的版本而是生成一个新的版本旧有的版本仍然保留这是和HDFS只允许追加不允许修改的特性相关的每个单元格都保存数据的多个版本这些版本用时间戳索引 2、数据模型相关概念 表HBase采用表来组织数据表由行和列组成列划分为若干个列族行每个HBase表都由若干行组成每个行由行键row key来标识。访问表中的行只有3种方式通过单个行键访问;通过一个行键的区间来访问全表扫描。行键可以是任意字符串(最大长度是64 KB实际应用中长度一般为 10~100 Byte )。列族一个HBase表被分组成许多“列族”Column Family的集合它是基本的访问控制单元。在 HBase 中访问控制、磁盘和内存的使用统计都是在列族层面进行的.列限定符列族里的数据通过列限定符或列来定位。列限定符不用事先定义也不需要在不同行之间保持一致。列限定符没有数据类型总被视为字节数组 byte[ ]。单元格在HBase表中通过行、列族和列限定符确定一个“单元格”cell单元格中存储的数据没有数据类型总被视为字节数组byte[ ]。每个单元格中可以保存一个数据的多个版本每个版本对应一个不同的时间戳。时间戳每个单元格都保存着同一份数据的多个版本这些版本采用时间戳进行索引 1、HBase 中需要根据某些因素来确定一个单元格这些因素可以视为一个 四维坐标下面哪个不属于四维坐标 A、 关键字    B、 行键    C、 列族     D、 时间戳 2、HBase 只有一个针对行健的索引如要要访问 HBase 表中的行下面哪种 方式是不可行的 A、 通过单个行健访问 B、 通过时间戳访问 C、 通过一个行健的区间来访问 D、 全表扫描 3、下列关于数据模型的描述哪些是正确的 A、 HBase 采用表来组织数据表由行和列组成列划分为若干个列族 B、 每个 HBase 表都由若干行组成每个行由行键row key来标识 C、 列族里的数据通过列限定符或列来定位 D、 每个单元格都保存着同一份数据的多个版本这些版本采用时间戳进行索 引 4.4HBase的实现原理 1、HBase的功能组件各个功能的实现方法 1库函数链接到各个客户端 2一个Master主服务器负责管理和维护HBase表的分区信息分配和维护Region服务器列表负载均衡 3许多个Region服务器负责存储和维护分配给自己的Region处理来自客户端的读写请求 客户端并不是直接从Master主服务器上读取数据而是在获得Region的存储位置信息后直接从Region服务器上读取数据客户端并不依赖Master甚至不与Master通信而是通过Zookeeper获得Region服务器直接从Region服务器上读取数据这种设计方式使得Master负载很小 2、表和Region 在一个HBase 中存储了许多表。对于每个 HBase 表而言表中的行是根据行键的值的字序进行维护的表中包含的行的数量可能非常庞大无法存储在一台机器上需要分布存储到台机器上。因此需要根据行键的值对表中的行进行分区(见图 4-5 )。每个行区间构成一个分区被称为“Region”。Region 包含了位于某个值域区间内的所有数据是负载均衡和数据分发的基本单位。这些 Region 会被分发到不同的 Region 服务器上。 3、Region的分裂 一开始只有一个Region后来不断分裂 Region拆分操作非常快接近瞬间因为拆分之后的Region读取的仍然是原存储文件直到“合并”过程把存储文件异步地写到独立的文件之后才会读取新文件 每个Region 的默认大小是 100~200 MBRegion的最佳大小取决于单台服务器的有效处理能力。同一个Region不会被拆分到多个Region服务器一个Region服务器存储10-1000个Region 4、Region的定位 层次 名称 作用 第一层 Zookeeper文件 记录-ROOT-表的位置信息 第二层 -ROOT-表 根数据表 记录了.META.表的Region位置信息只有一个Region。通过-ROOT表就可以访问.META.表中的数据 记录所有元数据的具体位置 第三层 .META.表 元数据表 记录了用户数据表的 Region 位置信息.META.表可以有多个 Region保存了 HBase 中所有用户数据表的 Region 位置信息 存储了Region服务器和各个Region之间的映射关系可以分裂成多个Region 为了加快访问速度.META.表的全部Region都会被保存在内存中假设.META.表的每行一个映射条目在内存中大约占用1KB并且每个Region限制为128MB那么上面的三层结构可以保存的用户数据表的Region数目的计算方法是 -ROOT-表能够寻址的.META.表的Region个数×每个.META.表的 Region可以寻址的用户数据表的Region个数 一个-ROOT-表最多只能有一个Region也就是最多只能有128MB按照每行一个映射条目占用1KB内存计算128MB空间可以容纳128MB/1KB217行也就是说一个-ROOT-表可以寻址217个.META.表的Region。同理每个.META.表的 Region可以寻址的用户数据表的Region个数是128MB/1KB217。最终三层结构可以保存的Region数目是(128MB/1KB) × (128MB/1KB) 234个Region 客户端访问用户数据之前需要首先访间 ZooKeeper获取-ROOT-表的位置信息然后访问-ROOT表获得META.表的信息接着访问META.表找到所需的 Region 具体位于哪个 Regior服务器最后才会到该 Rcgion 服务器读取数据。 客户端访问数据时的“三级寻址” 为了加速寻址客户端会缓存位置信息同时需要解决缓存失效问题寻址过程客户端只需要询问Zookeeper服务器不需要连接Master服务器 1、下面关于 Region 的说法哪个是错误的 A、 同一个 Region 不会被分拆到多个 Region 服务器 B、 为了加快访问速度.META.表的全部 Region 都会被保存在内存中 C、 一个-ROOT-表可以有多个 Region D、 为了加速寻址客户端会缓存位置信息同时需要解决缓存失效问题 2、关于 HBase 的三层结构中各层次的名称和作用的说法哪个是错误的 A、 Zookeeper 文件记录了用户数据表的 Region 位置信息 B、 -ROOT-表记录了.META.表的 Region 位置信息 C、 .META.表保存了 HBase 中所有用户数据表的 Region 位置信息 D、 Zookeeper 文件记录了-ROOT-表的位置信息 3、下面关于主服务器 Master 主要负责表和 Region 的管理工作的描述哪 个是错误的 A、 实现相同 Region 服务器之间的负载均衡行 B、 在 Region 分裂或合并后负责重新调整 Region 的分布 C、 对发生故障失效的 Region 服务器上的 Region 进行迁移 D、 管理用户对表的增加、删除、修改、查询等操作 4、HBase 的实现包括哪三个主要的功能组件 A、 库函数链接到每个客户端 B、 一个 Master 主服务器 C、 许多个 Region 服务器 D、 部署在廉价的计算机集群中 5、HBase 的三层结构中三层指的是哪三层 A、 Zookeeper 文件 B、 -ROOT-表 C、 .META.表 D、 数据类型 6、HBase 性能监视主要包括以下哪几方面 A、 Master-status(自带) B、 Ganglia C、 OpenTSDB D、 Ambari 7、Zookeeper 是一个很好的集群管理工具被大量用于分布式计算它主要 提供什么服务 A、 配置维护 B、 域名服务 C、 分布式同步 D、 组服务 8、下列关于 Region 服务器工作原理的描述哪些是正确的 A、 每个 Region 服务器都有一个自己的 HLog 文件 B、 每次刷写都生成一个新的 StoreFile数量太多影响查找速度 C、 合并操作比较耗费资源只有数量达到一个阈值才启动合并 D、 Store 是 Region 服务器的核心 9、下列关于 HLog 工作原理的描述哪些是正确的 A、 分布式环境必须要考虑系统出错。HBase 采用 HLog 保证 B、 HBase 系统为每个 Region 服务器配置了一个 HLog 文件 C、 Zookeeper 会实时监测每个 Region 服务器的状态 D、 Master 首先会处理该故障 Region 服务器上面遗留的 HLog 文件  4.6.1HBase常用的shell命令 接下来我们将详细介绍常用的数据定义语言(Data Definition LanguageDDL)和数据操作语言( Data Manipulation LanguageDML)命令。对于其他命令读者可以使用 help 命令来获知该命令的作用及其具体语法比如使用“help create”命令查询 create 的使用方法。 1、create创建表 ①创建表 t1列族为 f1列族版本号为 5命令如下 hbasecreate t1{NAME f1VERSIONS 5} ②创建表 t13 个列族分别为 f1、f2、3命令如下 hbasecreate t1{NAME f1}{NAME f2}{NAME f3} 或者使用如下等价的命令: hbasecreate tlflf2f3 ③创建表 t1将表依据分割算法 HexStringSplit 分布在 15 个 Region 里命令如下 hbasecreate t11{NUMREGIONS 15SPLITALGO HexStringSplit} ④创建表 t1指定切分点命令如下: hbasecreate t1f1{SPLITS [10203040]} 2、list: 列出 HBase 中所有的表信息 该命令比较简单这里不做具体说明。 3、put:向表、行、列指定的单元格添加数据一次只能为一个表的一行数据的一个列添加一个数据 在添加数据时HBase会自动为添加的数据添加一个时间戳当然也可以在添加数据时人工指定时间戳的值 向表 t1 中行 row1 和列 fl:c1 所对应的单元格中添加数据 value1时间戳为 1421822284898,命令如下 hbaseput t1row1fl:c1value11421822284898 4、get: 通过指定表名、行、列、时间戳、时间范围和版本号来获得相应单元格的值 ①获得表 t1、行rl、列c1、时间范围为[tsl,ts2]、版本号为4的数据命令如下 hbaseget t1r1{COLUMN C1TIMERANGE [ts1ts2]VERSIONS 4} ②获得表 t1、行r1、列c1 和 c2 的数据命令如下: hbaseget t1r1c1c2 5、scan:浏览表的相关信息可以通过 TIMERANGE、FILTER、LIMIT、STARTROW、STOPROW、TIMESTAMP、MAXLENGTH、COLUMNS、CACHE 来限定所需要浏览的数据。 ①浏览表“.META.”、列info:regioninfo 的数据命令如下 hbasescan .META.{COLUMNS info:regioninfo} ②浏览表 t1、列c1、时间范围为[13036688041303668904]的数据命令如下 hbasescan t1{COLUMNS - c1TIMERANGE [13036688041303668904]} 6、alter: 修改列族模式 ①向表 t1 添加列族f1命令如下 hbasealter tlNAME f1 ②删除表 t1 中的列族 f1命令如下 hbasealter t1NAME f1, METHOD delete ③设定表 t1 中列族 f1 最大为 128 MB命令如下 hbasealter t1METHOD table_att, MAX_FILESIZE 134217728 上面命令中“134217728”表示字节数128 MB 等于 134217728 Byte。 7、count: 统计表中的行数 比如可以使用如下命令统计表 t1 中的行数 hbasecount t1 8、describe: 显示表的相关信息 比如可以使用如下命令显示表 t1 的信息: hbasedescribe t1 9、enable/disable:使表有效或无效 该命令比较简单这里不做具体说明 10、delete: 删除指定单元格的数据 删除表 t1、行rl、列cl、时间戳为 tsl 的数据命令如下 hbasedelete t1r1cl,ts1 11、drop: 删除表 该命令比较简单这里不做具体说明。需要指出的是删除某个表之前必须先使该表 无效。 12、exists: 判断表是否存在 该命令比较简单这里不做具体说明。 13、truncate: 使表无效删除该表然后重新建立表 该命令比较简单这里不做具体说明。 14、exit: 退出 HBase Shell 该命令比较简单这里不做具体说明 15、shutdown:关闭 HBase 集群 该命令比较简单这里不做具体说明。 16、version:输出 HBase 版本信息 该命令比较简单这里不做具体说明 17、status:输出 HBase 集群状态信息 可以通过 summary、simple 或者 detailed这3个参数指定输出信息的详细度。 输出集群详细状态信息命令如下 hbasestatus detailed 5.5 NoSQL的三大基石 NoSQL的三大基石包括CAP、BASE和最终一致性。 1、CAP CAP理论告诉我们一个分布式系统不可能同时满足C一致性、A可用性、P分区容忍性最多同时满足两个 CConsistency一致性是指任何一个读操作总是能够读到之前写操作的结果也就是在分布式环境中多点的数据是一致的或者说所有节点在同一时间具有相同的数据AAvailability可用性是指快速获取数据在确定时间内返回操作结果不管请求成功或失败都会相应PTolenrance of Network Partition分区容忍性是指当出现网络分区的情况时即系统中的一部分节点无法和其他节点进行通信分离的系统也能够正常运行也就是说系统中任意信息的丢失或失败不会影响系统的继续运作。 2、当处理CAP的问题时可以有几个明显的选择 CA强调一致性C和可用性A放弃分区容忍性P将所有事务内容放到一台机器上可扩展性较差。传统关系数据库都采用了这种设计原则。CP强调一致性C和分区容忍性P放弃可用性A出现网络分区影响时受影响的服务需要等待数据一致因此在等待期间就无法对外提供服务。BigTableHBaseRedisMongoDB等AP强调可用性A和分区容忍性P放弃一致性C允许系统返回不一致的数据。DynamoCouchDBRiak等 2、BASE 一个数据库事务具有ACID四性 AAtomicity原子性是指事务必须是原子工作单元对于其数据修改要么全都执行要么全都不执行CConsistency一致性是指事务在完成时必须使所有的数据都保持一致状态IIsolation隔离性是指由并发事务所做的修改必须与任何其它并发事务所做的修改隔离DDurable持久性是指事务完成之后它对于系统的影响是永久性的该修改即使出现致命的系统故障也将一直保持 BASE的基本含义是基本可用Basically Availble、软状态Soft-state和最终一致性Eventual consistency Basically Available基本可用性允是指一个分布式系统的一部分发生问题变得不可用时其他部分仍然可以正常使用也就是允许分区失败的情形出现Soft state软状态与“硬状态hard-state”相对应的一种提法。数据库保存的数据是“硬状态”时可以保证数据一致性即保证数据一直是正确的。“软状态”是指状态可以有一段时间不同步具有一定的滞后性Eventually consistency最终一致性包括强一致性和弱一致性即只要保证数据最终是一致的就可以了 一致性的类型包括强一致性和弱一致性二者的主要区别在于高并发的数据访问操作下后续操作是否能够获取最新的数据。对于强一致性而言当执行完一次更新操作后后续的其他读操作就可以保证读到更新后的最新数据反之如果不能保证后续访问读到的都是更新后的最新数据那么就是弱一致性。而最终一致性只不过是弱一致性的一种特例允许后续的访问操作可以暂时读不到更新后的数据但是经过一段时间之后必须最终读到更新后的数据。 最常见的实现最终一致性的系统是DNS域名系统。一个域名更新操作根据配置的形式被分发出去并结合有过期机制的缓存最终所有的客户端可以看到最新的值。 3、最终一致性 最终一致性根据更新数据后各进程访问到数据的时间和方式的不同又可以区分为 因果一致性没有因果关系的节点绝对不互相访问“读己之所写”一致性绝不会看到旧值只会看到最新写入的值会话一致性会话还在系统就保证一致性单调读一致性如果之前看到了一个值那之后绝不会看到这个值之前的值单调写一致性系统按照写操作的顺序执行这是必须保证的 7.2MapRuduce的工作流程 1、MapReduce的体系结构 MapReduce体系结构主要由四个部分组成分别是Client、JobTracker、TaskTracker以及Task 1Client客户端 用户编写的MapReduce程序通过Client提交到JobTracker端用户可通过Client提供的一些接口查看作业运行状态 2JobTracker三大功能资源管理任务调度任务监控 负责资源监控和作业调度监控所有TaskTracker与Job的健康状况一旦发现失败就将相应的任务转移到其他节点跟踪任务的执行进度、资源使用量等信息并将这些信息告诉任务调度器TaskScheduler而调度器会在资源出现空闲时选择合适的任务去使用这些资源 3TaskTracker 周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给JobTracker同时接收JobTracker 发送过来的命令并执行相应的操作如启动新任务、杀死任务等使用“slot”等量划分本节点上的资源量CPU、内存等一个Task 获取到一个slot 后才有机会运行而Hadoop调度器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。slot分为Map slot和Reduce slot两种分别供Map Task和Reduce Task使用 4Task Task分为Map Task 和Reduce Task 两种均由TaskTracker 启动 2、MapReduce工作流程 大规模数据集的处理包括分布式存储和分布式计算两个核心环节。Hadoop 使用分布式文件系统HDFS实现分布式数据存储用 Hadoop MapReduce 实现分布式计算。MapReduce 的输人和输出都需要借助于分布式文件系统进行存储这些文件被分布存储到集群中的多个节点上。 MapReduce 的核心思想可以用“分而治之”来描述把一个大的数据集拆分成多个小数据集在多台机器上并行处理。一个大的 MapReduce 作业首先会被拆分成许多个 Map 任务在多台机器上并行执行每个 Map 任务通常运行在数据存储的节点上。这样计算和数据就可以放在一起运行不需要额外的数据传输开销。当 Map 任务结束后会生成以key,value形式的许多中间结果。然后这些中间结果会被分发到多个 Reduce 任务在多台机器上并行执行具有相同 key 的key,value会被发送到同一个 Reduce 任务Reduce 任务会对中间结果进行汇总计算得到最后结果并输出到分布式文件系统。 不同的Map任务之间不会进行通信不同的Reduce任务之间也不会发生任何信息交换用户不能显式地从一台机器向另一台机器发送消息所有的数据交换都是通过MapReduce框架自身去实现的 全过程 从分布式文件系统HDFS读入数据执行Map任务输出中间结果通过Shuffle阶段把中间结果分区、排序整理后发送给Reduce任务执行Reduce任务得到最终结果并写入分布式文件系统 Split分片 HDFS 以固定大小的block 为基本单位存储数据而MapReduce 处理单位是split。split是一个逻辑概念只包含元数据信息数据起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。 Map任务的数量 Hadoop为每个split创建一个Map任务split 的多少决定了Map任务的数目。大多数情况下理想的分片大小是一个HDFS块 Reduce任务的数量 最优的Reduce任务个数取决于集群中可用的reduce任务槽(slot)的数目通常设置比Reduce任务槽数目稍微小一些的Reduce任务个数这样可以预留一些系统资源处理可能发生的错误 3、★Shuffle过程MapReduce 的核心环节——Shuffle过程 1Map端 输入数据和执行Map任务Map任务的输出结果写入缓存溢写每个Map任务分配的缓存大小默认是100M缓存快满时溢写比例0.8启动溢写操作将缓存中的数据一次性写入磁盘并清空缓存。文件归并每次溢写都会生成一个新的磁盘文件随着Map任务的执行会生成多个溢写文件Map任务结束前这些溢写文件被归并成一个大的磁盘文件可选文件合并Combine将相同键的值加起来通知相应的Reduce任务来“领取”属于自己处理的数据 2Reduce端 通过RPC向JobTracker询问Map任务是否已经完成若完成则“领取”数据写入缓存溢写分区、排序和合并 领取的数据先放入缓存来自不同Map机器先归并再合并写入磁盘多个溢写文件归并成一个或多个大文件文件中的键值对是排序的 当数据很少时不需要溢写到磁盘直接在缓存中归并输出给Reduce 1、下列关于 MapReduce 模型的描述错误的是哪一项 A、 MapReduce 采用 分而治之策略 B、 MapReduce 设计的一个理念就是 计算向数据靠拢 C、 MapReduce 框架采用了 Master/Slave 架构 D、 MapReduce 应用程序只用 Java 来写 2、MapReduce 的体系结构在JobTracker 是主要任务是什么 A、 负责资源监控和作业调度监控所有 TaskTracker 与 Job 的健康状况 B、 使用slot等量划分本节点上的资源量CPU、内存等 C、 会周期性地通过心跳将本节点上资源的使用情况和任务的运行进度汇报给 TaskTracker D、 会跟踪任务的执行进度、资源使用量等信息并将这些信息告诉任务Task 3、下列关于 MapReduce 工作流程哪个描述是正确的 A、 所有的数据交换都是通过 MapReduce 框架自身去实现的 B、 不同的 Map 任务之间会进行通信 C、 不同的 Reduce 任务之间可以发生信息交换 D、 用户可以显式地从一台机器向另一台机器发送消息 4、下列关于 MapReduce 的说法哪个描述是错误的 A、 MapReduce 具有广泛的应用比如关系代数运算、分组与聚合运算等 B、 MapReduce 将复杂的、运行于大规模集群上的并行计算过程高度地抽象到 了两个函数 C、 编程人员在不会分布式并行编程的情况下也可以很容易将自己的程序运 行在分布式系统上完成海量数据集的计算 D、 不同的 Map 任务之间可以进行通信 5、下列关于 Map 和 Reduce 函数的描述哪个是错误的 A、Map 将小数据集进一步解析成一批key,value对输入 Map 函数中进行处理 B、Map 每一个输入的k 1 ,v 1 会输出一批k 2 ,v 2 。k 2 ,v 2 是计算的中间结果 C、Reduce 输入的中间结果k 2 ,List(v 2 )中的 List(v 2 )表示是一批属于不同一个 k 2 的 value D、Reduce输入的中间结果k 2 ,List(v 2 )中的List(v 2 )表示是一批属于同一个k2的 value 6、下面哪一项不是 MapReduce 体系结构主要部分 A、Client    B、JobTracker    C、TaskTracker 以及 Task    D、Job 7、关于 MapReduce 的体系结构的描述下列说法错误的是 A、 用户可通过 Client 提供的一些接口查看作业运行状态 B、 用户编写的 MapReduce 程序通过 Client 提交到 JobTracker 端 C、 JobTracker 负责资源监控和作业调度 D、 JobTracker 会跟踪任务的执行进度、资源使用量等信息并将这些信息告诉任务调度器TaskScheduler 8、关于 MapReduce 的体系结构的描述下列说法错误的是 A、Task分为Map Task和Reduce Task两种分别由JobTracker和TaskTracker启动 B、 slot 分为 Map slot 和 Reduce slot 两种分别供 MapTask 和 Reduce Task 使用 C、 TaskTracker 使用slot等量划分本节点上的资源量CPU、内存等 D、 TaskTracker 会周期性接收 JobTracker 发送过来的命令并执行相应的操 作如启动新任务、杀死任务等 9、下列说法有误的是 A、 Hadoop MapReduce 是 MapReduce 的开源实现后者比前者使用门槛低很多 B、 MapReduce 非共享式容错性好 C、 MapReduce 批处理、实时、数据疏散型 D、 MapReduce 采用 分而治之策略 10、MapReduce 相较于传统的并行计算框架有什么优势 A、 非共享式容错性好 B、 普通 PC 机便宜扩展性好 C、 what简单 D、 批处理、非实时、数据密集型 11、MapReduce 体系结构主要由以下那几部分构成 A、 Client   B、 JobTracker   C、 TaskTracker    D、 Task 12、下列关于 MapReduce 的体系结构的描述说法正确的有 A、 用户编写的 MapReduce 程序通过 Client 提交到 JobTracker 端 B、 JobTracker 负责资源监控和作业调度 C、 TaskTracker 监控所有 TaskTracker 与 Job 的健康状况 D、 TaskTracker 使用slot等量划分本节点上的资源量CPU、内存等 13、MapReduce 的作业主要包括什么 A、 从磁盘或从网络读取数据即 IO 密集工作 B、 计算数据即 CPU 密集工作 C、 针对不同的工作节点选择合适硬件类型 D、 负责协调集群中的数据存储 14、对于 MapReduce 而言其处理单位是 split。split 是一个逻辑概念 它包含哪些元数据信息 A、 数据起始位置 B、 数据长度 C、 数据所在节点 D、 数据大小 15、下列关于 Map 端的 Shuffle 的描述哪些是正确的 A、 MapReduce 默认 1000MB 缓存 B、 多个溢写文件归并成一个或多个大文件文件中的键值对是排序的 C、 当数据很少时不需要溢写到磁盘直接在缓存中归并然后输出给 Reduce D、 每个 Map 任务分配多个缓存使得任务运行更有效率  16、MapReduce 的具体应用包括哪些 A、 关系代数运算选择、投影、并、交、差、连接 B、 分组与聚合运算 C、 矩阵-向量乘法 D、 矩阵乘法 17、MapReduce 执行的全过程包括以下哪几个主要阶段 A、 从分布式文件系统读入数据 B、 执行 Map 任务输出中间结果 C、 通过 Shuffle 阶段把中间结果分区排序整理后发送给 Reduce 任务 D、 执行 Reduce 任务得到最终结果并写入分布式文件系统 18、下列关于分布式并行编程的描述哪些是正确的 A、 摩尔定律 CPU 性能大约每隔 18 个月翻一番 B、 分布式程序运行在大规模计算机集群上 C、 谷歌公司最先提出了分布式并行编程模型 MapReduce D、 MapReduce 是 Hadoop 的开源实现 19、下列说法正确的是 A、 MapReduce 体系结构主要由四个部分组成分别是Client、 JobTracker、TaskTracker 以及 Task B、 Task 分为 Map Task 和 Reduce Task 两种均由 TaskTracker 启动 C、 在 MapReduce 工作流程中所有的数据交换都是通过 MapReduce 框架自身去实现的 D、 在 MapReduce 工作流程中用户不能显式地从一台机器向另一台机器发送消息 7.3实例分析WordCount Map过程示意图 1、用户没有定义Combiner时的Reduce过程示意图 2、用户有定义Combiner时的Reduce过程示意图 4试画出使用MapReduce来对以下文档进行词频统计的过程包括用户定义Combiner函数和没有定义Combiner函数两种情况。文档内容如下 8.3新一代资源管理调度框架YARN 1、★MapReduce1.0的缺陷资源管理效率低 存在单点故障问题只有一个JobTracker一旦发生故障就需要停机维护JobTracker“大包大揽”导致任务过重三大功能资源管理、任务调度、任务监控容易出现内存溢出TaskTracker分配资源只考虑MapReduce任务数不考虑CPU、内存资源划分不合理强制划分为slot 包括Map slot和Reduce slot 2、YARN设计思路将JobTracker三大功能拆分 ResourceManager包含调度器Scheduler和应用程序管理器Applications Manager主要负责 处理客户端请求启动/监控ApplicationMaster监控NodeManager资源分配和调度 ApplicationMaster 为应用程序申请资源分配给内部任务任务调度、监控与容错 NodeManager 单个节点上的资源管理处理来自ResourceManger和ApplicationManager的命令 3、YARN的工作流程 用户编写客户端应用端程序并向YARN提交提交的内容包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等ResourceManager负责接受用户的请求为应用程序分配一个容器并与该容器的NodeManager通信在该容器中启动一个ApplicationMasterApplicationMaster创建后向ResourceManager注册ApplicationMaster采用轮询的方式向ResourceManager申请资源ResourceManager以“容器”形式为ApplicationMaster分配资源ApplicationMaster收到资源后立即与NodeManager通信要求其启动任务任务启动后ApplicationMaster还会与NodeManager保持交互通信进行应用程序的运行、监控和停止此外ApplicationMaster还会定时向ResourceManager发送“心跳”消息报告资源的使用情况和应用的进度信息即各个任务向ApplicationMaster汇报自己的状态和进度应用程序运行完成后ApplicationMaster向ResourceManager的应用程序管理器注销并关闭自己。 4、★YARN相比于MapReduce1.0的优势 大大减少了承担中心服务功能的ResourceManager的资源消耗ResourceManager 只需要负责资源管理需要消耗大量资源的任务调度和监控重启工作则交由ApplicationMaster 来完成多个作业对应多个ApplicationMaster实现了监控分布化MapReduce1.0既是一个计算框架又是一个资源管理调度框架但是它只能支持MapReduce 编程模型。而YARN是一个纯粹的资源调度管理框架在它上面可以运行包括MapReduce 在内的不同类型的计算框架默认类型是 MapReduce。因为 YARN 中的ApplicationMaster 是可变更的针对不同的计算框架用户可以采用任何编程语言自己编写服务于该计算框架的 ApplicationMaster。YARN中的资源管理比MapReduce1.0更加高效。以容器为单位而不是以slot槽为单位避免了MapReduce1.0中slot的闲置浪费情况大大提高了资源的利用率 5、YARN的发展目标是实现“一个集群多个框架”为什么 一个企业当中同时存在各种不同的业务应用场景需要采用不同的计算框架 MapReduce实现离线批处理使用Impala实现实时交互式查询分析使用Storm实现流式数据实时分析使用Spark实现迭代计算 这些产品通常来自不同的开发团队具有各自的资源调度管理机制为了避免不同类型应用之间互相干扰企业就需要把内部的服务器拆分成多个集群分别安装运行不同的计算框架即“一个框架一个集群”导致集群资源利用率低、数据无法共享、维护代价高等若干问题YARN的目标就是实现“一个集群多个框架”即在一个集群上部署一个统一的资源调度管理框架YARN在YARN之上可以部署其他各种计算框架由YARN为这些计算框架提供统一的资源调度管理服务并且能够根据各种计算框架的负载需求调整各自占用的资源实现集群资源共享和资源弹性收缩可以实现一个集群上的不同应用负载混搭有效提高了集群的利用率不同计算框架可以共享底层存储避免了数据集跨集群移动 2、下列哪个不属于 YARN 体系结构中 ResourceManager 的功能 A、 处理客户端请求 B、 监控 NodeManager C、 资源分配与调度 D、 处理来自 ApplicationMaster 的命令 3、下列哪个不属于 YARN 体系结构中 ApplicationMaster 的功能 A、 任务调度、监控与容错 B、 为应用程序申请资源 C、 将申请的资源分配给内部任务 D、 处理来自 ResourceManger 的命令 4、YARN 体系结构主要包括哪三部分 A、 ResourceManager B、 NodeManager C、 ApplicationMaster D、 DataManager 5、在 YARN 体系结构中ApplicationMaster 主要功能包括哪些 A、 当用户作业提交时ApplicationMaster 与 ResourceManager 协商获取资源ResourceManager 会以容器的形式为 ApplicationMaster 分配资源 B、 把获得的资源进一步分配给内部的各个任务Map 任务或 Reduce 任务 实现资源的二次分配 C、 定时向 ResourceManager 发送心跳消息报告资源的使用情况和应用的进度信息 D、 向 ResourceManager 汇报作业的资源使用情况和每个容器的运行状态  6、YARN 的目标就是实现一个集群多个框架为什么 A、 一个企业当中同时存在各种不同的业务应用场景需要采用不同的计算框 架 B、 为了避免不同类型应用之间互相干扰企业就需要把内部的服务器拆分成 多个集群分别安装运行不同的计算框架即一个框架一个集群 C、 这些产品通常来自不同的开发团队具有各自的资源调度管理机制 D、 解决单点故障 9.5.4Impala与Hive的比较 不同点 Hive适合长时间的批处理查询分析Impala适合实时交互式SQL查询当采用MapReduce作为执行引擎时Hive依赖于MapReduce计算框架执行计划组合成管道型的MapReduce任务模式进行执行Impala把执行计划表现为一棵完整的执行计划树可以更自然地分发执行计划到各个Impalad执行查询。Hive在执行过程中如果内存放不下所有数据则会使用外存而Impala在遇到内存放不下数据时不会利用外存所以Impala目前处理查询时会受到一定的限制。使得Impala更适合处理输出数据较小的查询请求而对于大数据量的批量处理Hive依然是更好的选择。 相同点 Hive与Impala使用相同的存储数据池都支持把数据存储于HDFS和HBase中Hive与Impala使用相同的元数据Hive与Impala中对SQL的解释处理比较相似都是通过词法分析生成执行计划 1、下列有关Hive和Impala的对比错误的是: A.  Hive与Impala中对SQL的解释处理比较相似都是通过词法分析生成执行计划 B.  Hive与Impala使用相同的元数据 C.  Hive适合于长时间的批处理查询分析而Impala适合于实时交互式SQL查询 D.  Hive在内存不足以存储所有数据时会使用外存而Impala也是如此 2、下列关于Hive基本操作命令的解释错误的是: A.  create table if not exists usr(id bigint,name string,age int);//如果usr表不存在创建表usr含三个属性id,name,age B.  load data local inpath ‘/usr/local/data’ overwrite into table usr; //把目录’/usr/local/data’下的数据文件中的数据以追加的方式装载进usr表 C.  create database userdb;//创建数据库userdb D.  insert overwrite table student select * from user where age10; //向表usr1中插入来自usr表的age大于10的数据并覆盖student表中原有数据 3、下列说法正确的是 A.  Impala和Hive、HDFS、HBase等工具可以统一部署在一个Hadoop平台上 B.  数据仓库Hive不需要借助于HDFS就可以完成数据的存储 C.  Hive本身不存储和处理数据依赖HDFS存储数据依赖MapReduce处理数据 D.  HiveQL语法与传统的SQL语法很相似 4、Impala主要由哪几个部分组成: A.  Hive   B.  Impalad  C.  State Store  D.  CLI 5、以下属于Hive的基本数据类型是: A.  BINARY  B.  STRING   C.  FLOAT   D.  TINYINT 10.1 Spark概述 1、简介 Spark最初由美国加州伯克利大学UCBerkeley的AMP实验室于2009年开发是基于内存计算的大数据并行计算框架可用于构建大型的、低延迟的数据分析应用程序2013年Spark加入Apache孵化器项目后发展迅猛如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一Hadoop、Spark、StormSpark在2014年打破了Hadoop保持的基准排序纪录Spark/206个节点/23分钟/100TB数据Hadoop/2000个节点/72分钟/100TB数据Spark用十分之一的计算资源获得了比Hadoop快3倍的速度 2、Spark特点 运行速度快使用DAG执行引擎以支持循环数据流与内存计算容易使用支持多种编程语言Scala、Java、Python和R语言也可以使用Spark Shell交互式编程通用性Spark提供了完整而强大的技术栈包括SQL查询、流式计算、机器学习和图算法组件运行模式多样可运行于独立的集群模式中可运行于Hadoop中也可以运行于云环境并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源 3、Scala简介 Scala是一门现代的多范式编程语言运行于Java平台JVMJava 虚拟机并兼容现有的Java程序Scala是Spark的主要编程语言但Spark还支持Java、Python、R作为编程语言Scala的优势是提供了REPLRead-Eval-Print Loop交互式解释器提高程序开发效率 Scala特性 具备强大的并发性同一时间执行多个任务支持函数式编程可以更好地支持分布式系统语法简洁能提供优雅的API兼容Java运行速度快且能融合到Hadoop生态圈中 4、★与Hadoop MapReduce对比Spark为什么更优秀 1Hadoop存在如下一些缺点 表达能力有限磁盘IO写入 读出开销大延迟高任务之间的衔接均涉及IO开销必须等前一个任务执行完才能执行难以胜任复杂、多阶段的计算任务 2Spark优点 Spark的计算模式也属于MapReduce但不局限于Map和Reduce操作还提供了多种数据集操作类型编程模型比Hadoop MapReduce更灵活提供了内存计算内存的读写速度比磁盘快得多可将中间结果放到内存中对于迭代运算效率更高基于DAG的任务调度执行机制要优于Hadoop MapReduce的迭代执行机制非常耗资源Spark将数据载入内存后之后的迭代计算都可以直接使用内存中的中间结果作运算避免了从磁盘中频繁读取数据 1、下列哪项是 Hadoop 生态系统中 Spark 的功能 A、 处理大规模数据的脚本语言 B、 工作流和协作服务引擎协调 Hadoop 上运行的不同任务 C、 支持 DAG 作业的计算框架 D、 基于内存的分布式并行编程框架具有较高的实时性并且较好支持迭代计算 2、下面关于 Spark 的说法错误的是哪一项 A、 使用 DAG 执行引擎以支持循环数据流与内存计算 B、 可运行于独立的集群模式中可运行于 Hadoop 中也可运行于 Amazon EC2 等云环境中 C、 支持使用 Scala、Java、Python 和 R 语言进行编程但是不可以通过 Spark Shell 进行交互式编程 D、 Spark 提供了内存计算可将中间结果放到内存中对于迭代计算效率更 高 3、下列关于 Scala 特性的描述错误的是哪一项 A、 Scala 语法复杂但是能提供优雅的 API 计算 B、 Scala 具备强大的并发性支持函数式编程可以更好地支持分布式系统 C、 Scala 兼容 Java运行速度快且能融合到 Hadoop 生态圈中 D、 Scala 是 Spark 的主要编程语言  4、下列说法哪项有误 A、 相对于 Spark 来说使用 Hadoop 进行迭代计算非常耗资源 B、 Spark 将数据载入内存后之后的迭代计算都可以直接使用内存中的中间 结果作运算避免了从磁盘中频繁读取数据 C、 Hadoop 的设计遵循一个软件栈满足不同应用场景的理念 D、 Spark 可以部署在资源管理器 YARN 之上提供一站式的大数据解决方案  145、在 Spark 生态系统组件的应用场景中下列哪项说法是错误的 A、 Spark 应用在复杂的批量数据处理 B、 Spark SQL 是基于历史数据的交互式查询 C、 Spark Streaming 是基于历史数据的数据挖掘 D、 GraphX 是图结构数据的处理 10.3 Spark运行架构 1、基本概念 RDD是Resillient Distributed Dataset弹性分布式数据集的简称是分布式内存的一个抽象概念提供了一种高度受限的共享内存模型DAG是Directed Acyclic Graph有向无环图的简称反映RDD之间的依赖关系Executor是运行在工作节点WorkerNode的一个进程负责运行Task。Application用户编写的Spark应用程序Task运行在Executor上的工作单元Job一个Job包含多个RDD及作用于相应RDD上的各种操作Stage是Job的基本调度单位一个Job会分为多组Task每组Task被称为Stage或者也被称为TaskSet代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集 2、Spark架构 Spark运行架构包括 集群资源管理器Cluster Manager运行作业任务的工作节点Worker Node每个应用的任务控制节点Driver每个工作节点上负责具体任务的执行进程Executor 资源管理器可以自带或Mesos或YARN与Hadoop MapReduce计算框架相比Spark所采用的Executor有两个优点 利用多线程来执行具体的任务减少任务的启动开销Executor中有一个BlockManager存储模块会将内存和磁盘共同作为存储设备有效减少IO开销 一个应用Application由一个任务控制节点Driver和若干个作业Job构成一个Job由多个Stage构成一个Stage由多个没有Shuffle关系的Task组成当执行一个应用Application时任务控制节点Driver会向集群管理器Cluster Manager申请资源启动Executor并向Executor发送应用程序代码和文件然后在Executor上执行Task运行结束后执行结果会返回给任务控制节点Driver或者写到HDFS或者其他数据库中 3、Spark运行基本流程 当一个 Spark 应用被提交时首先需要为这个应用构建起基本的运行环境即由任务按制节点( Driver)创建一个SparkContext由 SparkContext负责和资源管理器-Cluster Manage的通信以及进行资源的申请、任务的分配和监控等。SparkContext 会向资源管理器注册并申请运行 Executor 的资源。资源管理器为Executor分配资源并启动Executor进程Executor 运行情况将随着“心跳”发送到资源管理器上。SparkContext 根据 RDD 的依赖关系构建 DAG并将 DAG 提交给 DAG 调度器(DAGScheduler)进行解析将 DAG分解成多个“阶段Stage” (每个阶段都是一个任务集 )并且计算出各个阶段之间的依赖关系然后把一个个“任务集”提交给底层的任务调度器(TaskScheduler) 进行处理Exccutor 向 SparkContxt 申请任务Task任务调度器Task Scheduler将任务Task分发给 Executor 运行同时sparkConfext 将应用程序代码发放给 Exccutor。任务Task在 Executor 上运行把执行结果反馈给任务调度器TaskScheduler然后反馈给 DAG 调度器DAGScheduler运行完毕后写入数据并释放所有资源。 4、Spark运行架构特点 每个应用Application都有自己专属的Executor进程并且该进程在应用Application运行期间一直驻留。Executor进程以多线程的方式运行任务Task, 减少了多进程任务频繁的启动开销使得任务执行变得非常高效和可靠。Spark运行过程与资源管理器无关只要能够获取Executor进程并保持通信即可任务Task采用了数据本地性和推测执行等优化机制。数据本地性尽量将计算移到数据所在的节点上进行即“计算向数据靠拢”因为移动计算比移动数据所占的网络资源要少得多。而且Spark采用了延时调度机制更大程度上实现了执行过程优化 5、RDD运行原理 1设计背景 许多迭代式算法比如机器学习、图算法等和交互式数据挖掘工具共同之处是不同计算阶段之间会重用中间结果目前的MapReduce框架都是把中间结果写入到HDFS中带来了大量的数据复制、磁盘IO和序列化开销RDD就是为了满足这种需求而出现的它提供了一个抽象的数据架构我们不必担心底层数据的分布式特性只需将具体的应用逻辑表达为一系列转换处理不同RDD之间的转换操作形成依赖关系可以实现管道化避免中间数据存储和磁盘IO消耗 2RDD的概念 一个RDD就是一个分布式对象集合本质上是一个只读的分区记录集合每个RDD可分成多个分区每个分区就是一个数据集片段并且一个RDD的不同分区可以被保存到集群中不同的节点上从而可以在集群中的不同节点上进行并行计算RDD提供了一种高度受限的共享内存模型即RDD是只读的记录分区的集合不能直接修改只能基于稳定的物理存储中的数据集创建RDD或者通过在其他RDD上执行确定的转换操作如map、join和group by而创建得到新的RDDRDD提供了一组丰富的操作以支持常见的数据运算分为“动作”Action和“转换”Transformation两种类型前者用于执行计算并指定输出的形式后者指定RDD之间的依赖关系。两类操作的主要区别是转换操作接受RDD并返回RDD动作操作接受RDD但是返回非RDD输出一个值或结果。RDD提供的转换接口都非常简单都是类似map、filter、groupBy、join等粗粒度的数据转换操作而不是针对某个数据项的细粒度修改因此RDD 比较适合对于数据集中元素执行相同操作的批处理式应用而不适用于需要异步、细粒度状态的应用比如 Web 应用系统、地量式的网页爬虫等。表面上RDD的功能很受限、不够强大实际上RDD已经被实践证明可以高效地表达许多框架的编程模型比如MapReduce、SQL、PregelSpark用Scala语言实现了RDD的API程序员可以通过调用API实现对RDD的各种操作 3RDD典型的执行过程如下 RDD读入外部数据源进行创建RDD经过一系列的转换Transformation操作每一次都会产生不同的RDD供给下一个转换操作使用最后一个RDD经过“动作”操作进行转换并输出到外部数据源 需要说明的是RDD采用了惰性调用即在 RDD 的执行过程中(见图 10-7)真正的计算发生在RDD的“行动”操作对于“行动”之前的所有“转换”操作Spark 只是记录下“转换”操作应用的一些基础数据集以及 RDD 生成的轨迹即相互之间的依赖关系而不会触发真正的计算。 下面是RDD执行过程的一个实例 上述这一系列处理称为一个“血缘关系”(Lincage)即 DAG 拓扑排序的结果。 优点惰性调用、管道化、避免同步等待、不需要保存中间结果、每次操作变得简单 4RDD特性 Spark使用RDD后为什么能高效计算 高效的容错机制不需要通过冗余复制来容错中间结果持久化到内存。数据在内存中的多个RDD操作之间进行传递避免了不必要的读写磁盘开销存放的数据可以是Java对象避免了不必要的对象序列化与反序列化 5RDD之间的依赖关系 RDD 中不同的操作会使得不同 RDD 分区之间会产生不同的依赖关系。DAG 调度器根据RDD 之间的依赖关系把 DAG 划分成若干个阶段。RDD 中的依赖关系分为窄依赖(NarrovDependency)与宽依赖( Wide Dependency)二者的主要区别在于是否包含 Shuffle 操作。 Shuffle操作 Spark 中的一些操作会触发 Shuffle 过程这个过程涉及数据的重新分发因此会产生大的磁盘IO和网络开销。 窄依赖和宽依赖 窄依赖表现为一个父RDD的分区对应于一个子RDD的分区或多个父RDD的分区对应于一个子RDD的分区宽依赖则表现为存在一个父RDD的一个分区对应一个子RDD的多个分区 对输入进行协同划分属于窄依赖对输入做非协同划分属于宽依赖。 Spark 的这种依赖关系设计使其具有了天生的容错性大大加快了 Spark 的执行速度。因为RDD 数据集通过“血缘关系”记住了它是如何从其他 RDD 中演变过来的当这个 RDD 的部分分区数据丢失时它可以通过血缘关系获取足够的信息来重新运算和恢复丢失的分区数据由此带来了性能的提升。 窄依赖的失败恢复更为高效它只需要根据父 RDD 分区重新计算丢失的分区即可(不需要重新计算所有分区)而且可以并行地在不同节点进行重新计算。而对于宽依赖而言单个节点失效通常意味着重新计算过程会涉及多个父 RDD分区开销较大。 此外Spark 还提供了数据检查点和记录日志用于持久化中间 RDD从而使得在进行失败恢复时不需要追溯到最开始的阶段。在进行故障恢复时Spark 会对数据检查点开销和重新计算 RDD 分区的开销进行比较从而自动选择最优的恢复策略。 6阶段的划分 Spark根据DAG图中的RDD依赖关系把一个作业分成多个阶段。对于宽依赖和窄依赖而言窄依赖对于作业的优化很有利。只有窄依赖可以实现流水线优化宽依赖包含Shuffle过程无法实现流水线方式处理。 Spark通过分析各个RDD的依赖关系生成了DAG再通过分析各个RDD中的分区之间的依赖关系来决定如何划分Stage具体划分方法是 在DAG中进行反向解析遇到宽依赖就断开遇到窄依赖就把当前的RDD加入到Stage中将窄依赖尽量划分在同一个Stage中可以实现流水线计算 由上述论述可知把一个 DAG 划分成多个“阶段”以后每个阶段都代表了一组关联的、相互之间没有 Shuffle 依赖关系的任务组成的任务集合。每个任务集合会被提交给任务调度器TaskScheduler)进行处理由任务调度器将任务分发给 Executor 运行。 7RDD运行过程 创建RDD对象SparkContext负责计算RDD之间的依赖关系构建DAGDAGScheduler负责把DAG图分解成多个阶段Stage每个阶段Stage中包含了多个任务Task每个任务Task会被任务调度器TaskScheduler分发给各个工作节点WorkerNode上的Executor去执行。 1、下列说法错误的是 A、 RDDResillient Distributed Dataset是运行在工作节点WorkerNode的一个进程负责运行 Task B、 Application 是用户编写的 Spark 应用程序 C、 一个 Job 包含多个 RDD 及作用于相应 RDD 上的各种操作 D、 Directed Acyclic Graph 反映 RDD 之间的依赖关系 2、下列关于 RDD 说法描述有误的是 A、 一个 RDD 就是一个分布式对象集合本质上是一个只读的分区记录集合 B、 每个 RDD 可分成多个分区每个分区就是一个数据集片段 C、 RDD 是可以直接修改的 D、 RDD 提供了一种高度受限的共享内存模型 3、下列哪一项不属于 Spark 架构的优点 A、 实现一键式安装和配置、线程级别的任务监控和告警 B、 降低硬件集群、软件维护、任务监控和应用开发的难度 C、 便于做成统一的硬件、计算平台资源池 D、 不用负载应用混搭集群利用率高 4、Spark 生态系统组件 Spark Streaming 的应用场景是 A、 基于历史数据的数据挖掘 B、 图结构数据的处理 C、 基于历史数据的交互式查询 D、 基于实时数据流的数据处理 5、Spark 生态系统组件 MLlib 的应用场景是 A、 图结构数据的处理 B、 基于历史数据的交互式查询 C、 复杂的批量数据处理 D、 基于历史数据的数据挖掘 6、Spark 具有以下哪几个主要特点 A、 运行速度快 B、 容易使用 C、 通用性 D、 运行模式单一 7、Scala 具有以下哪几个主要特点 A、 Scala 的优势是提供了 REPLRead-Eval-Print Loop交互式解释器提高程序开发效率 B、 Scala 兼容 Java运行速度快且能融合到 Hadoop 生态圈中 C、 Scala 具备强大的并发性支持函数式编程 D、 Scala 可以更好地支持分布式系统  8、下列哪些选项属于 Hadoop 的缺点 A、 表达能力有限 B、 磁盘 IO 开销大 C、 延迟高 D、 在前一个任务执行完成之前其他任务就无法开始难以胜任复杂、多阶段的计算任务 9、下列说法中哪些选项描述正确 A、 Spark 在借鉴 Hadoop MapReduce 优点的同时很好地解决了 MapReduce 所 面临的问题 B、 Spark 的计算模式也属于 MapReduce但不局限于 Map 和 Reduce 操作 C、 Hadoop MapReduce 编程模型比 Spark 更灵活 D、 Hadoop MapReduce 提供了内存计算可将中间结果放到内存中对于迭代运算效率更高 10、在实际应用中大数据处理主要包括以下哪三个类型 A、 复杂的批量数据处理通常时间跨度在数十分钟到数小时之间 B、 基于历史数据的交互式查询通常时间跨度在数十秒到数分钟之间 C、 基于实时数据流的数据处理通常时间跨度在数十秒到数分钟之间 D、 基于实时数据流的数据处理通常时间跨度在数百毫秒到数秒之间 11、在实际应用中大数据处理难免会带来哪些问题 A、 不同场景之间输入输出数据无法做到无缝共享通常需要进行数据格式的 转换 B、 不同的软件需要不同的开发和维护团队 C、 需要较高的使用成本 D、 比较难以对同一个集群中的各个系统进行统一的资源协调和分配 12、与 Hadoop MapReduce 计算框架相比Spark 所采用的 Executor 具有哪些 优点 A、 利用多线程来执行具体的任务减少任务的启动开销 B、 Executor 中有一个 BlockManager 存储模块有效减少 IO 开销 C、 提供了一种高度受限的共享内存模型RDD D、 不同场景之间输入输出数据能做到无缝共享  13、Spark 运行架构具有以下哪些特点 A、 每个 Application 都有自己专属的 Executor 进程并且该进程在 Application 运行期间一直驻留 B、 Executor 进程以多线程的方式运行 Task C、 Spark 运行过程与资源管理器无关只要能够获取 Executor 进程并保持通 信即可 D、 Task 采用了数据本地性和推测执行等优化机制 14、Spark 采用RDD 以后能够实现高效计算的原因主要在于 A、 高效的容错机制 B、 中间结果持久化到内存数据在内存中的多个 C、 存放的数据可以是 Java 对象避免了不必要的对象序列化和反序列化 D、 现有容错机制数据复制或者记录日志 15、Spark 支持三种不同类型的部署方式包括 A、 Standalone类似于 MapReduce1.0slot 为资源分配单位 B、 Spark on Mesos和 Spark 有血缘关系更好支持 Mesos C、 Spark on YARN D、 Spark on HDFS 12.4 Flink技术栈 Flink 核心组件栈分为三层物理部署层、Runtime 核心层和APILibraries 层。 物理部署层。Flink 的底层是物理部署层。Flink 可以采用 Local 模式运行启动单个JVM.也可以采用 Standalone 集群模式运行还可以采用YARN 集群模式运行或者也可以运行在谷歌云服务(GCE )和亚马逊云服务(EC2) 上。Runtime 核心层。该层主要负责对上层不同接口提供基础服务也是 Flink 分布式计算框架的核心实现层。该层提供了两套核心的 API: 流处理(DataStream API) 和批处理(DataSet API)。APILibraries 层。作为分布式数据库处理框架Flink 提供了支撑流计算和批计算的按口同时在此基础上抽象出不同的应用类型的组件库如基于流处理复杂时间处理库CEP、既可以基于流处理、又可以基于批处理的SQLTable库、基于批处理的机器学习库FlinkML、基于批处理的图计算库Gelly等。 Flink核心组件栈
http://www.dnsts.com.cn/news/209704.html

相关文章:

  • 个人的视频网站如何做建设网站本地调试
  • 合肥哪里做网站沈阳正规的男科医院
  • 大兴企业网站建设唐山彩钢中企动力提供网站建设
  • 小说阅读网站开发视频南京站建设
  • 专业网站建设怎么样做微网站的公司哪家好呢
  • 百度 模块网站网站制作感受
  • 广西柳州网站制作公司网站切换城市代码
  • 网站设计公司费用百度wap
  • 登别的网站应怎么做做网站如何防止被骗
  • 怎样做百度推广网站装修设计那个网站好
  • 在哪个彩票网站是小黄人做头像的大连企业做网站公司排名
  • 创建设计公司网站apm安装wordpress网页无法访问
  • 没有网站可以做百度直通车吗淘宝网页版怎么看直播
  • 物流企业网站建设策划书做网站需要资质吗
  • 网站网站是怎么做的wordpress推荐插件
  • 网站如何做广告php做网站 价格
  • 北京做网站好的公司做网站顾客提现金额后台
  • 如何编写网站建设关闭未备案网站
  • 青岛网站制作开发云端商城买流量
  • 腾讯云网站备案流程橙米网站建设
  • 企业设计网站兰州营销型网站建设
  • 南安建设局网站wordpress 标签调用
  • 智能优化网站个人网站需要哪些内容
  • 做网站的合作案例营销型网站优化
  • 中小企业的网站建设方案农业建设信息网站
  • 中国太空空间站百度sem竞价
  • 长春联通网站备案礼县网站建设
  • 自己做网站要会什么网站建设服务
  • 建设企业官方网站宁波外贸公司黄页
  • 专业开发网站多少钱wordpress邮件设置